Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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_Class_Instance - Fatal编程技术网

Python实例,两个独立的类

Python实例,两个独立的类,python,class,instance,Python,Class,Instance,我有两门课: Class A fileA.py Class B fileB.py 在fileB.py上,我导入了fileA.py 在fileA.py上,我创建了我的obj=ClassA,并使用方法进行操作 A类和B类通过消息、主题等相互通信 我的问题是,当我处理fileB时,我想处理我在fileA:obj=ClassA上创建的同一个对象,而不是一个新对象。一般答案在很大程度上取决于两个模块中所做的具体操作 就您而言,根据您提供的信息,我相信您可以: 要么将obj全局设置为模块, 或者

我有两门课:

Class A  fileA.py  

Class B  fileB.py
在fileB.py上,我导入了fileA.py

在fileA.py上,我创建了我的obj=ClassA,并使用方法进行操作

A类和B类通过消息、主题等相互通信


我的问题是,当我处理fileB时,我想处理我在fileA:obj=ClassA上创建的同一个对象,而不是一个新对象。

一般答案在很大程度上取决于两个模块中所做的具体操作

就您而言,根据您提供的信息,我相信您可以:

要么将obj全局设置为模块, 或者在fileA中创建一个函数,该函数将返回正确的实例。
在任何情况下,我相信您应该考虑系统的体系结构。如果fileA.py用于定义类A模块定义类,为什么要在其中创建此类的特定实例?为什么不在fileB.py中创建这个实例,或者甚至在第三个文件中创建一个将使用这两个类的实例?

当您在fileA.py上说“我创建我的obj=ClassA”时,代码在哪里?它在函数中吗?在由if\uuuuu name\uuuuuu==\uuuuuuu main\uuuuu保护的块中?还是仅仅在高层?如果是后者,在导入classA之后,您可以在classB.py中使用classA.obj,它应该可以工作。如果你在其他地方创建obj,你将需要一些其他的解决方案,在不了解更多情况的情况下,我猜不出它会是什么。原因是我使用的是GUIslave和ROS节点主机。如果我在每个文件中更改一些全局变量,我需要更新它。以前,我使用了get和set方法,但没有解决它。您不想尝试在两个不同的进程之间更改全局变量,我假设您没有使用nodelets。如果你在谈论参数,你应该看看。