Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;自动地;检测python变量中的更改(或通过引用传递变量)_Python_Variables_Reference - Fatal编程技术网

&引用;自动地;检测python变量中的更改(或通过引用传递变量)

&引用;自动地;检测python变量中的更改(或通过引用传递变量),python,variables,reference,Python,Variables,Reference,假设我有 class MyData(object): var1 = 0 var2 = 0 var3 = 0 通过串行通信(或任何其他异步进程)设置数据 我还有一些GUI原语 class Label(object): def __init__(self, text, x_pos, y_pos): bluh.... def paint(self): screen.paint(self.__text, (self.__po

假设我有

class MyData(object):
   var1 = 0
   var2 = 0
   var3 = 0
通过串行通信(或任何其他异步进程)设置数据

我还有一些GUI原语

  class Label(object):
     def __init__(self, text, x_pos, y_pos):
         bluh....

     def paint(self):
        screen.paint(self.__text, (self.__pos))

   class MyWindow(self):
      def __init__(self):
         label_var1 = Label("VAR1", 10, 20)
         label_var2 = Label("VAR2", 10, 30)
我有多个MyWindow类的实例,它们在MyData类中显示不同的变量子集

问题: 我可以使用什么机制将a标签“连接”到它应该显示的变量?在C/C++中,我将存储指向变量的指针。
我很乐意创建一个包含变量值和变量id的类,但这似乎有些过分。

我不清楚您到底想做什么。您展示了一堆代码示例,但没有解释它们应该做什么。如果您使用的是GUI框架,它通常会有一种方法使标签“动态”,即通过调用回调或其他方式更新标签,这样您就可以使用新数据刷新标签。MyData与任何内容有什么关系?您在哪里使用它?您的问题是将标签“连接”到变量,以便您可以显示其值(为此,您需要在编辑器中引用变量),或自动检测对变量所做的任何更改(为此,您可以在变量的setter中更新观察器)。Tkinter具有类
IntVar
StringVar
等,当您更改变量时,
tkinter.Label
中的文本将更改(或者您可以将函数分配给变量,并在更改变量时执行该函数)。你必须创造一些类似的东西。我不清楚你到底想做什么。您展示了一堆代码示例,但没有解释它们应该做什么。如果您使用的是GUI框架,它通常会有一种方法使标签“动态”,即通过调用回调或其他方式更新标签,这样您就可以使用新数据刷新标签。MyData与任何内容有什么关系?您在哪里使用它?您的问题是将标签“连接”到变量,以便您可以显示其值(为此,您需要在编辑器中引用变量),或自动检测对变量所做的任何更改(为此,您可以在变量的setter中更新观察器)。Tkinter具有类
IntVar
StringVar
等,当您更改变量时,
tkinter.Label
中的文本将更改(或者您可以将函数分配给变量,并在更改变量时执行该函数)。你必须创造类似的东西。
  class Label(object):
     def __init__(self, text, x_pos, y_pos):
         bluh....

     def paint(self):
        screen.paint(self.__text, (self.__pos))

   class MyWindow(self):
      def __init__(self):
         label_var1 = Label("VAR1", 10, 20)
         label_var2 = Label("VAR2", 10, 30)