我对Python使用C#已经很多年了,而且我希望有人能够帮助我解决这个问题。我有一个名为actuators.py的模块,其中包含许多用于定义我在机器人项目中使用的伺服的属性和方法的类。在另一个模块调用robot.py,我实例化我的执行机构是这样的:如何在另一个模块中引用对象属性
import actuators as Actuators
myActuators = Actuators.AllActuators()
这样,只要我的robot.py模块在我访问我的伺服系统的性能。例如,我可以这样写:
print myActuators.HeadTilt.MinPosition
获得允许伺服器倾斜机器人头部的最小值。到现在为止还挺好。
现在我想在一个单独的线程中访问这些相同的值,这个线程由一个名为tilt_head.py的不同模块定义。我假设我需要导入对robot.py模块的引用,但是这样做最终会重新执行robot.py中的所有代码,而我真正想要的是对myActuators对象的静态引用。我无法使用
from robot.py import myActuators
因为myActuators不是模块。
在C#中,我会使用这样的声明,这样做:
public static Actuators myActuators;
,然后让我引用myActuators在我的项目中的任何其他文件。有没有办法在Python中做类似的事情?如果你需要我的实际代码,我会很乐意发布它。
谢谢!
只是一句澄清和术语。 Python没有C#所具有的“属性”。它确实有方法,并调用其数据成员“属性”。通过其广泛的动态编程能力,如果您需要它们,您可以破解出类似于C#属性的东西。我认为在这里,你只是指数据成员/属性。 – Karmastan 2010-06-28 17:23:24