私は変数が宣言の後にしかアクセスできないと考えていました。 しかし明らかに、Pythonの名前解決は内側から外側を探すようになります。内部関数の後に変数を定義するのは悪い習慣ですか?
私の質問は、これは読みやすさの観点から悪い習慣ですか?私はこれがPythonistaの一般的な知識であると思っていたので、今からこの種のコードを書くことができます。
def outer():
def inner():
print x
x = ‘foo’
inner()
>>> outer()
>>> ‘foo’
'x'を定義する前にそのメソッドが宣言されていますが、実際にメソッド(' inner() ')を呼び出し、この時点で' x'が定義されている場合のみ評価されます。 –
ありがとう!これは悪い習慣ですか? – steve
それはゲッターとセッターについて私に思い出させるものです(https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters)私はそれがあなたが欲しい理由によると思いますこのようにしてください。それは悪い習慣であるとあなた自身が言うことはできません。 –