Diyelim ki bir sınıfın bir örneğini oluşturuyorum ve genel özelliklerine bazı değerler atamak istiyorum. Genellikle bu böyle bitmiş olacaktır:Python'da sınıf özelliklerine dinamik olarak nasıl erişilir?
class MyClass:
def __init__(self):
self.name = None
self.text = None
myclass = MyClass()
myclass.name = 'My name'
Ama bir parametre olarak bir sınıf alan bir işlevi yazıp ben dinamik olarak bu sınıfın ortak özellikleri için bazı değerleri atamak isterseniz neyi - yani yoluyladır
myclass = MyClass()
myclass['name'] = "My name"
Ama bu işe yaramazsa: (. onlar denir kaç vardır ya bilmeden) değişkenler ve döngüler
bariz olacaktır.
Herhangi bir fikrin var mı? işini
class MyClass:
def __init__(self):
self.name = None
self.text = None
myclass = MyClass()
myclass.name = 'My name'
for prop in dir(myclass):
print '%s:%s'%(prop,getattr(myclass,prop))
print
for prop in dir(myclass):
if prop[:2]!='__' and prop[-2:]!='__':
print prop[-2:]
setattr(myclass,prop,"Foo Bar")
for prop in dir(myclass):
print '%s:%s'%(prop,getattr(myclass,prop))
yapmak Fakat bu kod aynı zamanda '__doc__', '__init__', '__module__'
özelliklerini "Foo Bar" için ayarlar nedeniyle dikkatli olmalıdır setattr
ile dir
kullanma
Ayrıca, bu bir kopyasıdır: http://stackoverflow.com/questions/1167398/python-access-class-property-from-string –