ほとんどの人はおそらくこれは悪い考えだと言うでしょう。文字列の内容を変数の名前として使用したい。私は恐ろしいことを達成したい:
s = 'x'
x = 1
変数名x
は(どういうわけか?)文字列から来ていますs
。
「なぜ?」に答えるためx
に、関数でオーバーライドするオプションが必要なグローバルデフォルト値があるとします。だが:
x = 0
def f(**kw):
print x
f(x=1)
印刷し0
ない1
。kw.keys()の文字列を使用してx
(または他のグローバルに設定された変数を)再割り当てできれば幸いです。
x
私はこれが再割り当てのために働くことを理解していますf
:
x = 0
def f(x=x):
print x
f(x=1)
しかし、名前空間に多くの変数があり、モジュール内のすべての関数定義を書き直さずにオーバーライドしたい場合に、これを実行したいと思います。