関数にパラメータとして渡された変数に新しい値を代入することはできません。代入を関数に置き換える方法
>>> a = 1
>>> def foo(bar):
... bar = 2
...
>>> foo(a)
>>> a
1
ただし、方法で変更することは可能です。
>>> a = [1, 2]
>>> def foo(bar):
... bar.append(3)
...
>>> foo(a)
>>> a
[1, 2, 3]
しかし、代入を置き換える(変数に全く新しい値を与える)方法があります。私の最初の例を動作させるために何か:
>>> a = 1
>>> def foo(bar):
... bar.assign(2)
...
>>> foo(a)
>>> a
2
私が見つけた唯一の選択肢は、グローバル変数ですと私自身のクラスを設計します。
だから私の質問は以下のとおりです。
は、このような方法はありますか? (または代替?)
もしそうでなければ、私は見落としよりもデザインの選択肢が必要です。なぜこの選択?値/コンテンツの一部を変更するメソッドがある場合、新しい値/コンテンツ全体を置き換える/与える方法はなぜありませんか?
代わりに、関数から変更された値を返し、その値を変数に代入することもできます。 – muratgu
http://stackoverflow.com/a/7028618/6258347には、Pythonでできることがいくつかあります。子供を覚えて、家で試してはいけません。 – Pykler