我有一个简单的模块结构:
mod1/
__init__.py
clsOne.py
clsN.py
代码如下所示:
__init__.py:
# module init
from clsOne import MyFirstCLass
from clsN import NThCLass
clshnd = MyFirstClass()
...
nhnd = NThClass()
clsOne.py:
class MyFirstClass( object ):
pass
clsN.py:
classNThClass( object ):
pass
现在我按如下方式使用它们:
Way #1)
from mod1.clsOne import MyFirstClass
或:
Way #2)
from mod1 import clshnd
是否可以导入名称clshnd
,但只能按需要初始化其他处理程序(即nhnd
)(当显式导入时)?
目前两者:方式#1和方式#2导致模块初始化调用,意味着:还创建了NThClass对象。我想避免它,因为我有很多这样的类,并且想避免长初始化,但是我想要简单访问(方式#2)。
是否有可能或我必须重新设计模块和文件(从 init 中删除)?
布里
答案 0 :(得分:0)
您只需将相关代码放入单独的模块中即可。
mod1/
__init__.py
clsOne.py
clsN.py
foo.py
然后在foo.py
:
from clsOne import MyFirstCLass
from clsN import NThCLass
clshnd = MyFirstClass()
...
nhnd = NThClass()