私はこのようなPydanticモデルクラスを持っています
class User(BaseModel):
username: str
firstname: str
lastname: str
今、ハードコーディングせずに「ユーザー名」を参照できるようにしたい(クラス名を参照できたように)
setup_index(User.__name__, "username")
コード生成ルートを通らない方法はありますか?
getattr(user, 'username')
を使用できます (@michael-butscher が言及)。name_getter = operator.attrgetter('username')
し、クライアントに提供して として使用できますname_getter(user)
。User
で getter メソッドを定義し、このメソッドへの参照を提供することによって、同じ効果を得ることができます。いずれにせよ、username
が実装の詳細である場合、このアプローチはそのような詳細をクライアントから隠すのに役立ちます。