函数
一个函数就是将一些语句集合在一起的部件,能够不止一次的在程序中运行
def语句将创建一个函数对象,并将其赋值给一个变量名。
def <name> (arg1,arg2...):
<statment>;
return ;
def 语句是实时执行的,当她运行的时候,他将创建一个新的函数对象并将其赋值给一个变量名
,因为他是一个语句,所以可以出现中在任何语句可以出现的地方。甚至嵌套在其他语句中,
if test:
def func():
...
else:
def func():
...
func();
函数仅仅是一个对象,所以可以像如下调用
othername = func();
othername();
实际上除了调用之外,函数允许任意的属性附加到记录信息以供后面使用 就像javascript一样
def fun():
...
fun()
fun.attr = value;
--------------------------------------------------------------------
参数
值传递和引用传递
def changed (a,b):
a = 2;
b[0]='spam'
x = 1
l = [1,2]
chenged(x,l)
x,l
(1,['spam',2])
任意参数的实例
def f(*args): print(args);
f(1,2,3,4)
(1,2,3,4)
当这个函数被调用的时候python 将所有位置相关的额参数都收集到一个元祖当中,并将这个元祖赋值给args
××特性类似 但是他只对关键字参数有效,将这些关键字传递给一个新的字典,这个字典能够通过一半的额字典工具处理,
def (**args):print(args)
f()
{}
f(a=1,b=2)
{'a':1,'b':2}
函数头部能够混合一般参数,×参数以及××参数
例如
def f(a,*agrs,**kargs):print (a,args,kargs)
f(1,2,3,x=1,y=2)
1,(2,3),{x:1,y:2}
在序列中映射函数
counter = [1,2,3,4];
def inc(x):return x+10
list(map(inc,counter))
[11,12,13,14]
这里也常是lamda出现的地方 匿名函数
list (map((lambda x:x+10),counter))