我在想變量只能在聲明後才能訪問。 但顯然,Python的名稱解析開始尋找從內到外。在內函數之後定義一個變量是一種不好的做法?
我的問題是,這在可讀性方面是不好的做法?我想知道這可能是Pythonista的常見知識,所以我可以從現在開始寫這種代碼。
def outer():
def inner():
print x
x = ‘foo’
inner()
>>> outer()
>>> ‘foo’
我在想變量只能在聲明後才能訪問。 但顯然,Python的名稱解析開始尋找從內到外。在內函數之後定義一個變量是一種不好的做法?
我的問題是,這在可讀性方面是不好的做法?我想知道這可能是Pythonista的常見知識,所以我可以從現在開始寫這種代碼。
def outer():
def inner():
print x
x = ‘foo’
inner()
>>> outer()
>>> ‘foo’
你說得對,該方法是在定義'x'前聲明的,但只有在你實際調用該方法('inner()')時才被評估,此時定義了'x'。 –
謝謝!這是不好的做法嗎? – steve
這種提醒我在getters和setter(https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters)我想這取決於你爲什麼想要這樣做。你不能說,這是不好的做法。 –