将字符串解释为变量名称(涉及的类) - Python

Ant*_*rth 1 python variables eval class pyqt4

我有一些变量名称字符串,最初必须是字符串(由于文件IO).
这些变量对应的变量是PyQt4小部件的变量名,嵌入两个类中.

我需要这些字符串能够转换为实际的变量名称,以便在函数中使用它们.
(有点像你在'一个数字的字符串')

这是代码(显示疯狂类)

第一个文件

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        self.VariableName = QWidget(whatever)
Run Code Online (Sandbox Code Playgroud)

第二个文件

from FIRST_FILE import Ui_MainWindow

class Start(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
    def ResetDropBoxes(self):
        X = "VariableName"
        self.ui.X.Function()
Run Code Online (Sandbox Code Playgroud)

有些人可能认为这是Pyuic4(Qt Designer)生成的python代码的格式

第二个文件的最后两行是麻烦.我收到错误消息"Ui_MainWindow()没有属性'X'".

我不知道该去哪里,除了尝试'eval'.我尝试过诸如......

X = self.ui.eval("VariableName")
Run Code Online (Sandbox Code Playgroud)

这提示错误"Ui_MainWindow()没有属性'eval'

X = eval("VariableName")
Run Code Online (Sandbox Code Playgroud)

"未定义VariableName"

X = "VariableName"
eval(self.ui.X.Function())
Run Code Online (Sandbox Code Playgroud)

"Ui_MainWindow()没有属性'X'"


我可以使用任何和所有帮助这件事!
我觉得eval让我更近了一步,但使用这些嵌套类会抑制它!

HALP"?


详细信息:
- Python 2.7.1
- Windows 7(32位)
- IDLE 1.8
- PyQt4
- Qt Designer

NPE*_*NPE 6

尝试

getattr(self.ui, VariableName).Function()
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见此处getattr.