是否可以創建對象名稱由字符串指定的對象使用字符串作爲名稱創建對象
E.g.
create_object(QtGui.QLineEdit, 'myname')
myname.setText = 'created!'
也就是說
create_object(QtGui.QLineEdit, 'myname')
等於
myname = QtGui.QLineEdit(self)
是否可以創建對象名稱由字符串指定的對象使用字符串作爲名稱創建對象
E.g.
create_object(QtGui.QLineEdit, 'myname')
myname.setText = 'created!'
也就是說
create_object(QtGui.QLineEdit, 'myname')
等於
myname = QtGui.QLineEdit(self)
要創建局部變量,你可以使用globals()
功能全局變量的字典。實施例 -
gbl = globals()
gbl['myname'] = QtGui.QLineEdit
gbl['test'] = 1234
test
>> 1234
對於locals()
函數,它返回局部變量的詞典(的local namespace
的拷貝),則可以使用該設置變量,只有當你在外部的功能和直接局部變量腳本部分,但設置爲由locals()
提供的字典將無法在函數內部工作(即使在該函數中,您將無法訪問該變量),但在使用該函數時會出現與globals()
完全相同的效果。
您可以使用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
您可以創建一個字符串指定對象名稱的屬性與setattr()
,像這樣:
setattr(sys.modules[__name__], 'myname', QtGui.QLineEdit)
不能使用'locals'定義局部變量。 – Daniel
是的,你可以,你試過嗎? –
你可能沒有嘗試過。 – Daniel