13函数---定义和调用
函数即变量,定义与调用
函数使用原则,先定义后调用,在定义阶段只检测语法,而代码的逻辑错误要在执行的时候才会知道
未定义而直接引用函数,就相当于在引用一个不存在的变量名
例1:
# #测试一 def foo(): print('from foo') bar() foo() #报错,bar未定义 # # #测试二 def bar(): print('from bar') def foo(): print('from foo') bar() foo() #正常 # # #测试三 def foo(): print('from foo') bar() def bar(): print('from bar') foo() #正常
例2:本来想实现逐个加2的效果
flist = [] for i in range(3): def foo(x): print(x+i) flist.append(foo) #注意这时候只是定义函数,并未调用函数,当把函数加入flist列表里时,python还没有给i赋值 for f in flist: f(2)#只有当执行时,再去找i的值是什么,这时在for循环结束了,i的值是2,结果为4 4 4 flist = [] for i in range(3): def foo(x): print(x+i) flist.append(foo(2)) #每次把函数加入flist列表里时都调用函数,i分别为0,1,2,故结果为2 3 4