[解決済み] Python: 名前空間へのディクショナリ変数のロード
2023-05-05 02:11:24
質問
関数内で定義されたローカル変数の束を、関数の外で使いたい。そこで、私は
x=locals()
を戻り値で渡しています。
その辞書で定義されたすべての変数を関数外の名前空間にロードするには、どうすればよいでしょうか。
x['variable']
を使って値にアクセスする代わりに、単純に
variable
.
どのように解決するのですか?
以下のように
Bunch
の代替案を考えてみましょう。
class Bunch(object):
def __init__(self, adict):
self.__dict__.update(adict)
ということで、辞書がある場合は
d
という構文でその値にアクセス(読み込み)したいとします。
x.foo
の代わりに、より不器用な
d['foo']
を使うのではなく、単に
x = Bunch(d)
は、関数の内部でも外部でも動作します -- そしてそれは
非常に
を注入するよりも非常にクリーンで安全です。
d
を
globals()
! Zen of Pythonの最後の行を思い出してください...。
>>> import this
The Zen of Python, by Tim Peters
...
Namespaces are one honking great idea -- let's do more of those!
関連
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み] Pythonにはクラス内に「プライベート」変数がある?
-
[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Pythonでリストが空かどうかをチェックする方法は?重複