手记

【python】坑都是踩出来的

1)本地变量被调用时必须提前申明

123456789101112131415161718192021= 12 def f1():    = 3    print x def f2():    += 1  #函数内部遇到变量赋值,此处为x = x+1,x会被当做局部变量,但是f2()内部是没有定义的,因此会报错    print x f1()  #输出3f2()  #报错,由于x没有被声明  #修改如下def f2():    global x    += 1    print x     f2()  #输出13

2)函数(包括闭包)中局部变量

123456789101112131415161718python中,一个函数可以随意读取全局变量,但是要修改全局变量的时候只有两种方法:1 global声明全局变量  2 全局变量是可变数据类型数据 1)python闭包函数中,我们可以随意使用外函数绑定来的临时变量,但是如果我们想修改外函数的临时变量数值会报错.2)使用闭包时,一旦外函数被调用一次返回内函数的引用,虽然每次调用内函数,是开启一个函数执行过后消亡,但是闭包变量实际上只有一份,每次开启内函数都在使用同一份闭包变量 def counter(start_at=0):    count = start_at    def incr():        count += 1        return count    return incr def counter(start_at=0):    count = [start_at]    def incr():        count[0+= 1        return count[0]    return incr


0人推荐
随时随地看视频
慕课网APP