函数是python中最重要,最基础的代码组织和代码复用方式。函数声明时使用def关键字,返回时使用return关键字。
def my_function(x,y,z=1.5)
if z >1:
return z * (x+y)
else:
return z / (x+y)
每个函数都可以有位置参数和关键字参数。关键字参数最常用于指定默认值或可选参数。x,y为位置参数,z为默认参数。
函数参数的主要限制是关键字参数必须跟在位置参数后。
也可以使用关键字参数像位置参数传参。my_fuction(x=5,y=5,z=7)
命名空间,作用域和本地函数
函数有两种链接变量的方式:全局,本地。在python中更贴切地描述变量作用域的名称是命名空间。在函数内部,任意变量都是默认分配到本地命名空间的。本地命名空间是在函数被调用是生成的,并立即由函数的参数填充。当函数执行结束后,本地命名空间就会被销毁。
在函数外部给变量赋值是可以的,但是那些变量必须使用global关键字声明为全局变量:
a = None
def bind_a_variable():
global a
a =[]
bind_a_variable()
print(a)#返回[]
通常全局变量用来储存系统中的某些状态。如果你发现你大量使用了全局变量,可能表明你需要面向对象编程(使用类)。