var_a = 0
class Chunk:
var_a = 1
def __init__(self):
print("Global a = {}".format(var_a))
print("Local a = {}".format(self.var_a))
mychunk = Chunk()
其结果是:
Global a = 0
Local a = 1
另一个例子
class BadIdea:
var_b = 0
def bad_idea(self):
var_b = 1;
nonlocal var_b
print("var_b = {}".format(var_b))
whoops = BadIdea()
给予
main.py:25: SyntaxWarning: name 'var_b' is assigned to before nonlocal declaration
nonlocal var_b
File "main.py", line 25
nonlocal var_b
SyntaxError: no binding for nonlocal 'var_b' found
正如@chepner在后一个例子中指出的,非局部作用域不包含var_b
,因为类作用域不存在?你知道吗
我仍然很好奇为什么“类作用域”与函数作用域有所不同。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐