ほとんどの人はおそらくこれは悪い考えだと言うでしょう。文字列の内容を変数の名前として使用したい。私は恐ろしいことを達成したい:
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)
しかし、名前空間に多くの変数があり、モジュール内のすべての関数定義を書き直さずにオーバーライドしたい場合に、これを実行したいと思います。