我有一个为实时系统编写的python代码,其中我从一个函数获取数据并将其赋给一个实际上是全局变量的变量,但当我试图在其他函数中使用它时,我无法在其他函数中获得更新值。如何解决这个问题。下面的示例代码将详细说明我到底在做什么。在
obtained_value = 0
### Inside the continuous loop statement ###
def Startloop(self):
global obtained_value
obtained_value = acquire_data() ## obtained value is getting updated after every 0.25 seconds ##
## other statements ##
def some_functions(self):
### want to do something which depend on value ###
print obtained_value ## does not print value inside "obtained_value"
val1 = obtained_value * 10
print val1
## etc etc ###
我没有在some\u函数中打印与print语句对应的任何值。似乎全局变量的值没有更新。如何解决这个问题。如有任何建议,我们将不胜感激。提前谢谢。在
那么}是实例方法,比如说Xyz类。在
Startloop
和{如果希望
obtained_value
成为类变量,该变量在类的对象(实例)之间共享,请首先在类中分配它:否则,如果希望
^{pr2}$obtained_value
是属于类的特定对象(实例)的对象变量,则在其构造函数中指定它:关键是Python有名称空间的概念(请继续阅读,不要害怕!) 在第一种情况下,
obtained_value
被分配给类的名称空间。 在第二种情况下,obtained_value
被分配给对象的名称空间。obtained_value
只是添加到适当名称空间的名称。在如您所见,
obtained_value
在这两种情况下都是通过self.obtained_value
来达到的。这是因为Python在对象的名称空间中查找obtained_value
。如果找不到它,Python会在对象类的命名空间中查找它。在这个答案并非详尽无遗,但我希望能有所帮助。 以防万一,请看官方的docs。在
再读这两行:
扰流板:
^{pr2}$相关问题 更多 >
编程相关推荐