是否可以创建一个对象名由字符串
指定的对象E.g。
create_object(QtGui.QLineEdit, 'myname')
myname.setText = 'created!'
那是
create_object(QtGui.QLineEdit, 'myname')
等于
myname = QtGui.QLineEdit(self)
答案 0 :(得分:1)
您可以使用globals
。例如:
class A:
a = 'Hello'
test = globals()['A']
print test.a #It will print 'Hello'
有关详细信息:http://www.diveintopython.net/html_processing/locals_and_globals.html
答案 1 :(得分:1)
要创建局部变量,可以使用globals()
函数获取全局变量的字典。示例 -
gbl = globals()
gbl['myname'] = QtGui.QLineEdit
gbl['test'] = 1234
test
>> 1234
对于具有locals()
函数的局部变量,它返回局部变量的字典(local namespace
的副本),只有在函数外部时才可以使用它来设置变量。直接在脚本部分,但是设置为locals()
提供的字典在函数内部不起作用(即使在该函数中也无法访问该变量),当使用它时,它具有完全正确的函数效果与globals()
相同。
答案 2 :(得分:0)
您可以创建一个带有字符串的属性,该字符串使用setattr()
指定对象名称,如下所示:
setattr(sys.modules[__name__], 'myname', QtGui.QLineEdit)