在这段代码中,为什么a
和b
在各自块的末尾没有被破坏?为什么对象允许在一个块之后使用?
flag = True
if flag:
a = 1
for i in range(2):
b = 2
print(a, b)
相反,此代码打印1 2
。为什么Python允许这样做?我何时可以依靠这种行为?
在这段代码中,为什么a
和b
在各自块的末尾没有被破坏?为什么对象允许在一个块之后使用?
flag = True
if flag:
a = 1
for i in range(2):
b = 2
print(a, b)
相反,此代码打印1 2
。为什么Python允许这样做?我何时可以依靠这种行为?
因为Python没有块范围。 –