函数 是 Python中最重要的代码组织和复用手段
函数用def关键字声明,return关键字返回:
def function(x, y, z=1.5):
if z > 1:
return z * (x + y)
else:
return z / (x + y)
##可以拥有多条return语句,如果到达函数末尾时没有遇到任何一条return语句,则返回None
##函数可以有一些位置参数(positional)和一些关键字参数(keyword)。
##关键字参数通过用于指定默认值或可选参数
##def function(x, y, z=1.5)中,x和y是位置参数,而z则是关键字参数。
##函数参数的限制主要在于:关键字参数必须位于位置参数之后
##这种函数可以用两种方式调用
function(5, 6, z=0.7) or function(5, 6 , 0.7)命名空间、作用域和局部函数
##函数可以访问两种不同作用域中的变量:全局和局部
##命名空间:用于描述变量作用域的名称
##局部命名空间:任何在函数中赋值的变量默认都是被分配到局部命名空间
##局部命名空间是在被函数调用时创建的,函数参数会立即填入该命名空间。
##在函数执行完毕之后,局部命令空间就会被销毁
def func():
a = []
for i in range(5):
a.append(i)
##调用func()之后,首先会创建出空列表a,然后添加5个元素,最后a会在该函数退出的时候被销毁
a = []
def func():
for i in range(5):
a.append(i)
##虽然可以在函数中对全局变量进行赋值操作,但是那些变量必须用global关键字声明成全局的才行
a = None
def bind_a_var():
global a
a = []
bind_a_var()
##可以在任何位置进行函数声明,即使是局部函数(在外层函数被调用之后才会被动态创建出来)也是可以的: