プロパティ名を動的に指定する場合に
setattr()
プロパティに値をセット。
3つの引数を指定
- オブジェクト
- プロパティ名前
- 設定する値
getattr()
プロパティの値を取得
2つの引数を指定
- オブジェクト
- 取得するプロパティ名
@dataclass
デコレータ
構造を表すデータクラス
コード
@dataclass
class User():
id: int
name: str
item: list = field(default_factory=list)
user = User(id=1,name="aaa",item=[100,200,300])
print(f"{user.id} {user.name} {user.item}")
# 1 aaa [100, 200, 300]
user.name="bbb"
print(f"{user.id} {user.name} {user.item}")
# 1 bbb [100, 200, 300]
# プロパティを文字列で指定する(セット)
setattr(user,"id",2)
print(f"{user.id} {user.name} {user.item}")
# 2 bbb [100, 200, 300]
# プロパティを文字列で指定する(ゲット)
print(getattr(user,"item"))
# [100, 200, 300]
# 一つずつ取得
for key, value in user.__dict__.items():
print(key, value)
# id 2
# name bbb
# item [100, 200, 300]