マイmain()関数があり、そのメソッドを呼び出すが、その変数名を参照しないことで、オブジェクトを編集することができます。は、なぜ私が小さい範囲内から
def main():
...
def _help():
...
1 a += somelist
2 a.append(something)
a=[]
_help()
奇妙何ライン2は完全に正常に動作していることですが、 ライン1は、私はmain
または_help
のいずれかの上部にグローバル変数としてa
宣言した場合でも、それはまだ動作しませんUnboundLocalError: Local variable 'a' referenced before assignment.
をスローします。どうしてこれなの?
これらの行の両方が同じ変数を編集しているため、どちらかまたは両方とも動作するはずです。 行1を動作させるにはどうすればよいですか?
非ローカルとグローバルとの違いは? –
@ A-P 'x = 7; def f():def g():非ローカルx; #xは未定義です。それはf()内のxを探していますが、グローバルではありません。 'x = 7; def f():def g():グローバルx; #x == 7'。 – Artyer