是否可以创建一个属性名称由字符串
指定的属性E.g。
create_attribute(QtGui.QLineEdit, 'myname')
self.myname.setText = 'created!'
那是
create_attribute(QtGui.QLineEdit, 'myname')
等于
self.myname = QtGui.QLineEdit(self)
我已经质疑类似的问题Creating an object using string as a name,但只是意识到它并没有解决我的第二个问题!
答案 0 :(得分:2)
使用setattr
:
setattr(self, 'myname', QtGui.QLineEdit(self))
要获取该属性,您可以使用getattr
:
getattr(self, 'myname').setText('bla')
答案 1 :(得分:1)
您可以使用__setattr__()
使用string
设置属性。
示例 -
class CA:
pass
c = CA()
c.__setattr__('name','value')
c.__setattr__('myname',QtGui.QLineEdit)
c.name
>> 'value'