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

 

posted @ 2021-04-03 17:56  cheng4632  阅读(88)  评论(0编辑  收藏  举报