代碼第一:命名空間中的理解與蟒蛇如果和別的
# case01
def x():
if False:
#x2 = 22
print x1
else:
print x2
if __name__ == '__main__':
if False:
x1 = 1
else:
x2 = 2
x()
case01的輸出:
2
沒問題!但是當我在if False:
塊並重新運行取消註釋#x2 = 22
,就會得到錯誤:
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-4-e36cb32b2c83> in <module>()
11 else:
12 x2 = 2
---> 13 x()
<ipython-input-4-e36cb32b2c83> in x()
4 print x1
5 else:
----> 6 print x2
7
8 if __name__ == '__main__':
UnboundLocalError: local variable 'x2' referenced before assignment
我看到,if False:
塊不會EXCUTE,但爲什麼x2 = 22
採取劇本我又寫道一定的影響?
我的Python版本:2.7.13
因爲賦值用於確定變量的範圍。你使'x2'成爲本地。 –