1、函数与过程
函数function:带有返回值
过程procedure:简单、特殊的,没有返回值
Python中只有函数、没有过程
2、返回值
3、变量的作用域Python是在赋值时确定变量的类型。
Python可以返回多个值【利用列表和元组】
在函数中尝试给全局变量赋值时会自动创建一个同名的几部变量!但可以在函数内部访问其值。局部变量:函数内的变量为局部变量,只能在本函数内起作用
全局变量:全局变量一定要小心,不能轻易的赋值
全局变量危害:http://bbs.fishc.com/forum.php?mod=viewthread&tid=42573&extra=page%3D1&page=1
4、global关键字
5、内嵌函数【函数内部定义函数,也叫内部函数】函数内部访问全局就好,不要试图修改它(Python会自动创建一个同名的局部变量)。【迫不得已要修改时,需要先用global申明】
def fun1():
print('fun1()在调用')
def fun2():
print('fun2()在使用')
fun2()
注意:fun2()只能在fun()中调用!
6、闭包【函数式编程的重要结构】
如果在一个内部函数对在内部函数之外的作用域的变量进行引用(这里排除对全局变量的引用,通常是引用外部函数),那么这个内部函数就被认为是一个闭包。
例:
def funx(x):
def funy(y):
return x*y
return funy
调用时的方式:
1. funx(3)(4) .......相当于x=3,y=4
2. i=funx(3) .......相当于先返回了funy的地址
i(4)
7、nonlocal关键字
def fun1():x = 5def fun2():nonlocal x *= x …………..加上关键字nonlocal后就不会报错return xreturn fun2()