首页 > 解决方案 > 将变量分配给类的实例,然后不断更新它

问题描述

我想创建一个包含外部变量的类的实例。该类应不断更新不断更改的外部变量。

这是我的代码,它将解释我的意思。但是,此代码不会更新分配给该类的变量,因为我的方法不正确。

class Update_variable(QtCore.QThread):
    def __init__(self, VariablName):
        QtCore.QThread.__init__(self)
        self.VariablName = VariablName

    def run(self):
        while True:
            variable = self.VariablName
            print("Value updated to: ", variable)           
            time.sleep(1.0)

if __name__ == '__main__':
    var1 = 0.0
    var2 = 1.1
    update_var1 = Update_variable(var1)
    update_var2 = Update_variable(var2)
    update_var1.start()
    update_var2.start()
    while True:
        var1 = random()
        var2 = random()
        print("New value for var1: ",var1)
        print("New value for var2: ",var2)
        time.sleep(1.0)

标签: pythonpython-3.x

解决方案


你不能这样做,因为变量是通过赋值传递的。

但是 Python 文档本身为我们提供了一些选择:https ://docs.python.org/3/faq/programming.html#how-do-i-write-a-function-with-output-parameters-call-by-参考


推荐阅读