[解決済み] オブジェクトを作成し、それに属性を追加するにはどうすればよいですか?
2022-03-14 07:57:50
質問
Pythonで動的オブジェクト(別のオブジェクトの内部)を作成し、それに属性を追加したいのですが、どうすればいいですか?
試してみました。
obj = someobject
obj.a = object()
setattr(obj.a, 'somefield', 'somevalue')
が、これはうまくいかなかった。
何か思い当たることはありますか?
を編集してください。
から属性を設定しています。
for
ループで、値のリストをループしています。
params = ['attr1', 'attr2', 'attr3']
obj = someobject
obj.a = object()
for p in params:
obj.a.p # where p comes from for loop variable
上記の例では、次のようになります。
obj.a.attr1
,
obj.a.attr2
,
obj.a.attr3
.
を使いました。
setattr
のやり方がわからなかったので、関数を使うことにしました。
obj.a.NAME
から
for
のループになります。
の値に基づいて、どのように属性を設定するのでしょうか?
p
の例では?
どのように解決するのですか?
私の古代の バンチ しかし、もしあなたが "バンチクラス" を作りたくないなら、非常にシンプルなものがすでにPythonに存在しています -- すべての関数は任意の属性を持つことができます(ラムダ関数も含む)。 つまり、以下のように動作します。
obj = someobject
obj.a = lambda: None
setattr(obj.a, 'somefield', 'somevalue')
由緒正しきと比較して、分かりやすさが損なわれているかどうか
Bunch
のレシピがOKかどうかは、もちろんスタイルの判断に委ねます。
関連
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
最新
-
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 jiabaライブラリの使用方法について説明
-
Python百行で韓服サークルの画像クロールを実現する
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み】Python: OverflowError: 数学の範囲エラー