局部作用域里的代碼可以讀外部作用域(包括全局作用域)里的變量,我寫了兩段代碼如下:第一段:def b():
g=0
def a():
print(g)
return a
b()()可以正常顯示0,表示a()函數可以讀取外部的變量g。第二段:class a():
i=10
def fun(self):
print(self.i) #print(i)就會報錯NameError: global name 'i' is not defined
wa=a()
wa.fun()這個fun()函數也能正確顯示10,表示可以讀取外部的變量,但是為什么在類中定義就必須要print(self.i)呢?為什么print(i)就會報錯“NameError: global name 'i' is not defined”?
關于python作用域的問題
慕田峪7331174
2018-07-18 10:08:16