[解決済み] Pythonで辞書から属性を設定する
2022-07-21 07:24:15
質問
Pythonで辞書からオブジェクトを作成し、各キーがそのオブジェクトの属性であるようにすることは可能ですか?
このようなものです。
d = { 'name': 'Oscar', 'lastName': 'Reyes', 'age':32 }
e = Employee(d)
print e.name # Oscar
print e.age + 10 # 42
この質問とかなり逆になってしまうと思うのですが。 オブジェクトのフィールドからのPython辞書
どのように解決するのですか?
もちろん、このようなものです。
class Employee(object):
def __init__(self, initial_data):
for key in initial_data:
setattr(self, key, initial_data[key])
更新
Brent Nashが提案するように、キーワード引数も許可することで、これをより柔軟にすることができます。
class Employee(object):
def __init__(self, *initial_data, **kwargs):
for dictionary in initial_data:
for key in dictionary:
setattr(self, key, dictionary[key])
for key in kwargs:
setattr(self, key, kwargs[key])
すると、このように呼び出すことができます。
e = Employee({"name": "abc", "age": 32})
とかこんな感じ。
e = Employee(name="abc", age=32)
とか、こんな感じでもいいんです。
employee_template = {"role": "minion"}
e = Employee(employee_template, name="abc", age=32)
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] 辞書から要素を削除する
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] virtualenvsはどこに作成するのですか?
最新
-
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辞書を生成する
-
[解決済み] オブジェクトを作成し、それに属性を追加するにはどうすればよいですか?
-
[解決済み] 2つの線分が交差しているかどうかを確認するにはどうすればよいですか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] SQLAlchemy: 日付フィールドをフィルタリングする方法は?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] if文によるリスト内包
-
[解決済み] Macにpythonモジュールをインストールする最も互換性のある方法は何ですか?
-
[解決済み] 複数のプロットを1つのPDFファイルに保存する