在python中,如何从父模块访问类的实例,或从带有子模块的顶层模块访问类的实例

在python中,如何从父模块访问类的实例,或从带有子模块的顶层模块访问类的实例,python,inheritance,module,instance,Python,Inheritance,Module,Instance,我是一名python新手,正在使用CherrypyWeb服务器和Jinja2模板引擎开发我的第一个python应用程序 我使用的是Velleman K8055 USB实验板,它有一个我正在导入的python模块 为了使K8055正常工作,我必须在K8055模块内创建一个类的实例,然后打开与电路板的连接。。。据我所知,我必须保持该连接/实例运行,并使用该唯一实例控制电路板,即使是从子模块内部 我很难弄清楚如何从我的子模块/包中访问先前初始化的K8055实例 我有一个应用程序结构非常类似于以下 Sm

我是一名python新手,正在使用CherrypyWeb服务器和Jinja2模板引擎开发我的第一个python应用程序

我使用的是Velleman K8055 USB实验板,它有一个我正在导入的python模块

为了使K8055正常工作,我必须在K8055模块内创建一个类的实例,然后打开与电路板的连接。。。据我所知,我必须保持该连接/实例运行,并使用该唯一实例控制电路板,即使是从子模块内部

我很难弄清楚如何从我的子模块/包中访问先前初始化的K8055实例

我有一个应用程序结构非常类似于以下

SmartyPi/
SmartyPi/smartypi.py
SmartyPi/smartypi/__init__.py
SmartyPi/smartypi/scheduler/
SmartyPi/smartypi/scheduler/__init__.py
SmartyPi/smartypi/scheduler/Scheduler.py
SmartyPi/smartypi/web/
SmartyPi/smartypi/web/__init__.py
SmartyPi/smartypi/web/k8055.py
SmartyPi/smartypi/web/root.py
SmartyPi/smartypi/web/schedule.py
在“SmartyPi/SmartyPi.py”中,我用以下命令初始化了我的k8055对象实例:

from pyk8055 import k8055
k = k8055(0)
我希望能够从以下位置访问相同的“k”实例:

SmartyPi/smartypi/web/k8055.py
SmartyPi/smartypi/web/schedule.py
我似乎无法独自解决这个问题

“SmartyPi/SmartyPi.py”不是创建我的K8055实例的最佳位置吗

我应该在其他地方制作它吗?我如何才能按照需要制作它?

将k=k8055(0)添加到pyk8055模块(最后)。与所有其他模块相比,只需更换:

from pyk8055 import k8055

注意:我建议用更独特的名称重命名k

如果无法编辑puk8055模块,请创建自己的模块,称之为globals.py:

from pyk8055 import k8055
k = k8055(0)
from globals import k
然后在其他模块中直接导入pyk8055,只需导入您的模块globals.py:

from pyk8055 import k8055
k = k8055(0)
from globals import k

为什么不在
smartypi.py
中创建
k8055
实例,然后让
k8055.py
schedule.py
包含除
k8055
实例以外的函数作为参数,因此,您可以将
k
传递给这些函数?将“k”实例作为参数传递有点棘手,因为当用户发出对“”或“”的请求时,会从CherryPy中调用“k8055.py”和“schedule.py”。是否有一种方法可以在我的应用程序中“导入”一个公共模块,该模块包含/使这些实例对我可用?谢谢你的回答,我还没有访问pyk8055模块的源代码,所以我选择了你的第二个选项“globals.py”。不幸的是,虽然更整洁,但这似乎并没有解决我的直接问题。。。每当我第二次运行我的函数时,我的对象最初打算的“全局”实例就会丢失,并替换为一个新实例,从而中断连接。。。我已经在这里粘贴了我的“smartypi/web/k8055.py”源->--任何想法??“来自smartypi.appglobals导入globalK8055作为k”必须在功能之外。通过这种方式,k被添加到模块名称空间,并且模块中的所有函数都可以访问k。目前,appglobals会在每次启动函数时重新导入,并在函数完成后删除。