yzk123 发表于 2021-3-5 21:35:06

函数闭包

例1
>>> count=5
>>> def func():
        count*=count
        return count

>>> func()


例2
>>> count=5
>>> def func():
        count=10
        return count

>>> func()
10

为什么例1不行,例2可以啊?他这个全局变量不是会屏蔽的吗?

永恒的蓝色梦想 发表于 2021-3-5 22:05:07

第一个 count 不明确,第二个没有问题。

redforce 发表于 2021-3-5 22:12:30

第一个count=5,是全局变量。func函数中的count是局部变量,引用不到全局count的值,会报错的

第二个函数,func中定义了一个count局部变量,所以没问题
count = 5
def func():
    global count
    count *= count
    return count
a = func()
print(a)

yuedong 发表于 2021-3-5 22:30:10

第一个func()
函数中没有count
页: [1]
查看完整版本: 函数闭包