對不起,如果這已經問過。如果在類的__init__
方法中沒有定義屬性,是否可以動態創建類?創建Python類,其中的屬性是動態定義的
例如與此類
class Person(object):
def __init__(self):
...
我可以動態地放在屬性初始化過程是這樣的:
person = Person(name='Joe')
和訪問它像這樣:
person.name
>>> Joe
謝謝
對不起,如果這已經問過。如果在類的__init__
方法中沒有定義屬性,是否可以動態創建類?創建Python類,其中的屬性是動態定義的
例如與此類
class Person(object):
def __init__(self):
...
我可以動態地放在屬性初始化過程是這樣的:
person = Person(name='Joe')
和訪問它像這樣:
person.name
>>> Joe
謝謝
要做到這一點,最簡單的方法是將關鍵字參數字典分配給__dict__
屬性的類:
class Person(object):
def __init__(self, **kw):
self.__dict__ = kw
person = Person(name='Joe')
print person.name
打印
Joe
要創建對象後添加屬性,使用
def add_attributes(self, **kw):
self.__dict__.update(kw)
您也可以在構造函數中使用.update()
。
這可以通過使用descriptors(detailed explanation)來實現。這也使您能夠在創建對象後添加屬性。