2011-03-01 19 views
5

Daha önce sorulmuşsa özür dileriz. Sınıfın __init__ yönteminde özniteliklerin tanımlanmadığı yerde dinamik olarak Python'da sınıf oluşturmak mümkün müdür. BöyleÖzniteliklerin dinamik olarak tanımlandığı Python sınıfı oluşturun

person = Person(name='Joe')

ve erişim it:

person.name 
>>> Joe 

bu Dinamik böyle başlatma sırasında özniteliklerde koyabilirsiniz

class Person(object): 
    def __init__(self): 
    ... 

sınıfla Örneğin

Teşekkür ederiz

Bunu yapmanın en kolay yolu

cevap

14

sınıfın __dict__ özniteliği anahtar kelime argümanı dicti atamaktır:

class Person(object): 
    def __init__(self, **kw): 
     self.__dict__ = kw 
person = Person(name='Joe') 
print person.name 

baskılar

Joe 

nesne oluşturulduktan sonra özellik eklemek için kullanın

def add_attributes(self, **kw): 
    self.__dict__.update(kw) 

Ayrıca, kurucuda .update()'u da kullanabilirsiniz.

İlgili konular