【发布时间】:2020-08-14 12:41:51
【问题描述】:
为什么 int 和 list 在 Python 中的作用域不同?下面是我的例子
#!/usr/bin/python
class Foo:
def method(self):
l = []
i = 0
def method1():
l.append(1)
i = i + 1 <<<<<< Throws exception
method1()
Foo().method()
在上面的示例中,我可以访问method1 函数中的列表l,但不能访问整数i。有什么可能的解释吗?
我参考了下面的链接,但它没有对上述情况进行解释。
【问题讨论】:
-
因为您在
method1中分配给i(但不是l)。如果你在函数中赋值给一个变量,除非你另外指定,否则该变量是函数的局部变量。 -
是的,在函数内部分配的任何变量默认都是局部变量。
标签: python scope global-variables