没有eval的Python变量变量?

Ben*_*Ben 2 python variables eval variable-variables

有没有办法在python中使用变量字符串访问变量?例如,我想要比eval以下方式更简洁:

def toggleListButtons (self):
    buttons = ["flip", "remove", "removeAll", "delete", "deleteAll", "loadDirectory"]
    for button in buttons:
        eval("self." + button + "Button.setEnabled(!self." + button + "Button.isEnabled())")
Run Code Online (Sandbox Code Playgroud)

Fab*_*ian 10

您正在寻找的是getattr()内置函数.还有hasattr()setattr().

button = getattr(self, 'flipButton')
button.setEnabled(True)
Run Code Online (Sandbox Code Playgroud)