gpt4 book ai didi

python - 在类外部声明的变量

转载 作者:行者123 更新时间:2023-12-01 05:21:11 24 4
gpt4 key购买 nike

按下按钮 A 打印在 MainWindow() 类作用域定义之外声明的 myVariable 变量。

print  '\n\t myVariable =', myVariable

链接到按钮 B 的类函数(方法)想要:

  1. 打印出 myVariable
  2. 为 myVariable 分配一个新值 (11)
  3. 再次打印此变量。

但是,buttonB_func() 失败,第一行抛出 UnboundLocalError:

UnboundLocalError: local variable 'myVariable' referenced before assignment

除了知道如何修复它之外,首先找出发生这种情况的原因也会很有趣。附注通过使用以下方式使变量成为全局变量:

global myVariable
myVariable=10

没有帮助。

myVariable=10

class MainWindow(QtGui.QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.main_layout = QtGui.QVBoxLayout()

buttonA = QtGui.QPushButton("Button A")
buttonA.clicked.connect(self.buttonA_func)
self.main_layout.addWidget(buttonA)


buttonB = QtGui.QPushButton("Button B")
buttonB.clicked.connect(self.buttonB_func)
self.main_layout.addWidget(buttonB)

central_widget = QtGui.QWidget()
central_widget.setLayout(self.main_layout)
self.setCentralWidget(central_widget)

def buttonA_func(self):
print '\n\t\t\t myVariable =', myVariable, '\n'

def buttonB_func(self):
print '\n\t\t\t myVariable =', myVariable, '\n'
myVariable=11
print '\n\t\t\t myVariable =', myVariable, '\n'



if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.resize(480, 320)
window.show()
sys.exit(app.exec_())

最佳答案

在尝试使用变量之前,将 global 放入方法主体中。

关于python - 在类外部声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com