前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 函数总结

Python 函数总结

作者头像
py3study
发布2020-01-14 15:01:36
2950
发布2020-01-14 15:01:36
举报
文章被收录于专栏:python3

声明和调用函数:

    声明函数的方法是用def关键字,函数名及小括号里面的参数列表。

代码语言:javascript
复制
def  foo(x):
         print x

    调用函数:给出函数名和一小对括号,并放入所需参数:

代码语言:javascript
复制
#!/usr/bin/env python
import  httplib
def  check_web_server(host,port,path):
    h=httplib.HTTPConnection(host,port)
    h.request('GET',path)
    resp=h.getresponse()
    print  'Http  Response :'
    print '    status = ',resp.status
    print '    resson = ',resp.reason
    print 'Http Headers:'
    for  hdr in resp.getheaders():
        print  '    %s: %s ' % hdr’
执行结果:check_web_server(‘www.python.org’,80,’/’)
Http  Response :
    status =  200
    resson =  OK
Http Headers:
    content-length: 417 
    x-powered-by: PHP/5.3.3-7+squeeze14 
    server: Apache 
    connection: close 
    date: Tue, 19 Feb 2013 02:39:16 GMT 
    content-type: text/html; charset=UTF-8

关键字参数:

可以省去固定顺序的需要,关键字参数通过 “键=值”的形式指定,例如:

代码语言:javascript
复制
     check_web_server(port=80,path='/',host='www.pyton.org')

默认参数:

对参数提供默认值,那可以不必向其传递变量值,比如:

代码语言:javascript
复制
    def  check_web_server(host,port=80,path=’/’)

注意:默认参数和关键字参数区别:

关键字参数只能用于“函数调用”,默认参数用于“函数声明”;对于默认函数,所有必须提供的参数一定要出现在任何可选参数之前,不能混在一起活着颠倒顺序。

代码语言:javascript
复制
    def  check_web_server(host,port=80,path) 这个是错误的

常见错误:

1、 将列表和字典作为默认参数;

由于列表和字典 都是可变变量,这样的话看哪呢过会很危险,特别是当他们连续的穿过多个函数调用时,

代码语言:javascript
复制
  def func(arg=[]):                                    arg.append(1)
      print arg
  func()
  [1]
  func()
  [1,1]
  func()
  [1,1,1]

函数在对象中的引用:

    在Python 里你可以把函数(或方法)当做和其他对象一样使用,可以放在容器里,赋值给其他变量,做为参数传递给函数等。

    当调用函数的时候才会加上小括号,把它当做变量或者对象传送时,只需要函数名字就可以啦

匿名函数:

创建的方法是使用lambda关键字,它由一个表达式组成,

语法:lambda  args:表达式   执行的时候 lambda 会返回一个可立即使用的函数对象,可以将其保存为一个变量,或者一个回调函数以便稍后执行.

*args  和 **kwargs

    无论是函数调用韩式声明,单个星号表示 有元祖或者列表作为参数,两个星号则代表参数为字典。

函数调用里的 *  和**

代码语言:javascript
复制
def  check_web_server(host,port,path):

将参数信息放到元祖里面:

代码语言:javascript
复制
host_info=(‘www.python.org’,80,’/’)

调用时:

代码语言:javascript
复制
check_web_server(host_info[0],host_info[1],host_info[2])

简洁点的写法:

代码语言:javascript
复制
check_web_server(*host_info)

如果:

代码语言:javascript
复制
host_info={‘host’:’www.python.org’.’port’:80,’path’:’/’}

所以函数调用就变成了:

代码语言:javascript
复制
check_web_server(**host_info)

声明函数中的 *  和  **

这个可以让python支持变长参数:

比如:

代码语言:javascript
复制
#!/usr/bin/env python
def daily_sales_total(*all_sales):
    total=0.0
    for each_sale in all_sales:
        total+=float(each_sale)
    print total
if __name__=='__main__':
    daily_sales_total()
    daily_sales_total(10.00)
    daily_sales_total(5.00,1.50,'128.75')

不管传递多少参数,都可以处理,all_sales是一个包含所有元素的元祖,

注意:在函数里定义变长函数时,所有必须出现的参数一定先出现,然后是默认值,最后是变长参数;

使用双星号的方式:

代码语言:javascript
复制
def  check_web_server(host,port,path,*args,**kwargs)

这样将至少接受初始三个参数

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档