声明和调用函数:
声明函数的方法是用def关键字,函数名及小括号里面的参数列表。
调用函数:给出函数名和一小对括号,并放入所需参数:
关键字参数:
可以省去固定顺序的需要,关键字参数通过 “键=值”的形式指定,例如:
默认参数:
对参数提供默认值,那可以不必向其传递变量值,
比如:
注意:默认参数和关键字参数区别:
关键字参数只能用于“函数调用”,默认参数用于“函数声明”;对于默认函数,<b>所有必须提供的参数一定要出现在任何可选参数之前</b>,不能混在一起活着颠倒顺序。
常见错误:
1、 将列表和字典作为默认参数;
由于列表和字典 都是可变变量,这样的话看哪呢过会很危险,特别是当他们连续的穿过多个函数调用时,
def func(arg=[]):
arg.append(1)
print arg
func()
[1]
[1,1]
[1,1,1]
函数在对象中的引用:
在Python 里你可以把函数(或方法)当做和其他对象一样使用,可以放在容器里,赋值给其他变量,做为参数传递给函数等。
当调用函数的时候才会加上小括号,把它当做变量或者对象传送时,只需要函数名字就可以啦
匿名函数:
创建的方法是使用lambda关键字,它由一个表达式组成,
语法:lambda args:表达式 执行的时候 lambda 会返回一个可立即使用的函数对象,可以将其保存为一个变量,或者一个回调函数以便稍后执行.
*args 和 **kwargs
无论是函数调用韩式声明,单个星号表示 有元祖或者列表作为参数,两个星号则代表参数为字典。
函数调用里的 * 和**
将参数信息放到元祖里面:
调用时:
简洁点的写法:
如果:
所以函数调用就变成了:
声明函数中的 * 和 **
这个可以让python支持变长参数:
不管传递多少参数,都可以处理,all_sales是一个包含所有元素的元祖,
注意:在函数里定义变长函数时,所有必须出现的参数一定先出现,然后是默认值,最后是变长参数;
使用双星号的方式:
这样将至少接受初始三个参数
本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1135482,如需转载请自行联系原作者