私はPythonの学習者であり、現在、ここの「名前付きのものの束」の例のように、可変数のフィールドを持つクラスをハッキングしています。
class Bunch:
def __init__(self, **kwds):
self.__dict__.update(kwds)
__setattr__
また、入力属性名を確認するために、このクラスにを記述したいと思います。しかし、Pythonのドキュメントには次のように書かれています。
__setattr __()がインスタンス属性に割り当てたい場合は、単に「self.name = value」を実行するべきではありません。これにより、それ自体が再帰的に呼び出されます。代わりに、インスタンス属性のディクショナリに値を挿入する必要があります(例: "self .__ dict __ [name] =value")。新しいスタイルのクラスの場合、インスタンスディクショナリにアクセスするのではなく、同じ名前の基本クラスメソッドを呼び出す必要があります(例: "object .__ setattr __(self、name、value)")。
その場合、置換object.__dict__
する関数でも使用する必要がありますか?__init__
self.__dict__