[解決済み] 現在のモジュールでsetattr()を呼び出すにはどうすればよいですか?
2022-04-27 22:41:22
質問
最初のパラメータとして何を渡せばよいのですか?
object
という関数に
setattr(object, name, value)
現在のモジュールに変数を設定するために、?
例えば
setattr(object, "SOME_CONSTANT", 42);
と同じ効果を与える。
SOME_CONSTANT = 42
これらの行を含むモジュール内で (正しい
object
).
モジュールレベルでいくつかの値を動的に生成しているのですが、その際に
__getattr__
モジュールレベルで、これは私のフォールバックです。
解決方法は?
import sys
thismodule = sys.modules[__name__]
setattr(thismodule, name, value)
を使用するか、または、使用せずに
setattr
(質問の文字が壊れますが、同じ実用的な目的を満たします;-)。
globals()[name] = value
備考 : モジュールスコープでは、後者が相当します。
vars()[name] = value
というのはもう少し簡潔ですが、関数内では動作しません (
vars()
グローバルスコープで呼ばれた場合はモジュールの変数、そしてR/Wで使用しても問題ありませんが、関数内で呼ばれた場合は関数の変数、そしてR/Oとして扱わなければなりません -- Pythonのオンラインドキュメントはこの特定の区別について少し混乱することがあります)。
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
PythonによるExcelファイルの一括操作の説明
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] モジュール上の __getattr__