onun 'için argümanlar türetilmiş sınıfları yaratan bir fonksiyonu var: Ben yeni sınıflar oluşturmak için kullanabilirsiniz ŞimdiSınıf isimleri dinamik olarak nasıl ayarlanır?
def factory(BaseClass) :
class NewClass(BaseClass) : pass
return NewClass
, sınıflar hepsi aynı adlı ve aynı tip gibi örnekleri bakmak gibidir:
NewA = factory(ClassA)
NewB = factory(ClassB)
print type(NewA()) # <class __main__.NewClass>
print type(NewB()) # <class __main__.NewClass>
elle __name__
özelliğini ayarlamak için uygun düzeltme var mı?
NewA.__name__ = 'NewA'
print type(NewA()) # <class __main__.NewA>
Bu sırada ayarlamam gereken başka şeyler var mı?
NewClass sınıf tanımı çok uzunsa biraz rahatsız edici görünüyor. Tüm yöntemleri bir sözlükte biriktirmek zorundayım (doc dizesinin oraya girdiğine inanıyorum '' __doc __ ''). – kiyo
Ayrıca NewClass'taki yöntemler, temel olarak BaseClass yöntemlerine başvurmak zorunda kalırsa ne olur? – kiyo
'type', değişken taban listeleriyle sınıf oluşturma gibi şeyler içindir; Bunun için tamamen yanlış bir araç. –