0

あるモジュールの変数を別のモジュールから更新する際に問題があります。なるべくシンプルに載せます。

mymod.py

params= { "name" : "system_user" }

config.py

import myapp.mymod

myapp.mymod.params={}

ただし、mymod.pyは変更されません。

私がしようとすると言う、

myapp.mymod.params["name"]="oracle"

それでも、元の .py ファイルは変更されません。それを達成する方法はありますか?

更新:質問を投稿した直後に、機能が存在する場合、その機能がどれほど悪いかを認識しました。

したがって、質問を再構成し、同じことについて提案を求めます。別のモジュールが更新されたデータにアクセスできるように、Python モジュール変数データを更新する必要があります。

私の頭に浮かぶ解決策の 1 つは、Python モジュールのすべての辞書データを更新するために使用される静的プロパティ ファイルを追加することです。ありがとう、ショウビク

4

1 に答える 1

3

「params」名に新しい値を割り当てていますが、元の辞書への既存の参照は変更されません。

myapp.mymod.params.clear() は、「params」名に新しい値を再割り当てするのではなく、代わりに変更するため、おそらく他のすべての参照を更新します。

例えば

>>> x = {"foo":"bar"}
>>> a = x
>>> x = {}
>>> print a
{'foo': 'bar'}

>>> x = {"foo": "bar"}
>>> a = x
>>> x.clear()
>>> print a
{}
于 2013-09-17T13:41:39.517 に答える