如何将所有活动模块放在python中的相同“命名空间”中?

时间:2016-12-22 19:21:22

标签: c# python namespaces global-variables code-organization

我的'/'目录看起来像这样。

Launch.py
Services.py
Server.py
ServerHelper.py
Packetlib.py

运行启动时,启动导入服务和服务器,导入服务和Serverhelper,导入服务的导入服务,服务,服务器和PacketLib。

查看问题?

这不仅仅是代码组织的一种可怕方式,但我需要在Server中定义的变量能够在Services和PacketLib中实时读取和修改。最重要的是,我在3个脚本中有8个这样的变量。

如何将所有导入的脚本放在同一个'命名空间'中,不再需要伪造的递归导入,并允许“无限脚本中的一个变量”执行模型,比如C#?

1 个答案:

答案 0 :(得分:0)

递归导入不应该有任何问题。

  

进口'并且'来自xxx import yyy'是可执行语句。他们   在正在运行的程序到达该行时执行。

     

如果模块不在sys.modules中,则导入会创建新模块   sys.modules中的模块条目,然后执行模块中的代码。   在执行之前,它不会将控制权返回给调用模块   已经完成了。

     

如果sys.modules中存在模块,则只返回导入   该模块是否已完成执行。那就是   为什么循环导入可能返回看似部分的模块   空。