Python 从包中单独文件中的类创建对象
如何正确使用python包中的父子类?(初始化文件为空) ---parent.py--- ----child.py--- ---模py--- 错误是:Python 从包中单独文件中的类创建对象,python,Python,如何正确使用python包中的父子类?(初始化文件为空) ---parent.py--- ----child.py--- ---模py--- 错误是: modulae.py", line 5, in <module> modula.child() AttributeError: module 'modula' has no attribute 'child' modulae.py”,第5行,在 modula.child() AttributeError:模块“modula
modulae.py", line 5, in <module>
modula.child()
AttributeError: module 'modula' has no attribute 'child'
modulae.py”,第5行,在
modula.child()
AttributeError:模块“modula”没有属性“child”
child.py应该具有来自.import parent的,modulae.py应该具有来自modula.child导入child的或来自modula导入child的;child.child()
默认情况下Python不会为您导入子包。因此,如果您具有:
modula
__init__.py
child.py
您不能通过执行以下操作来访问子对象:
import modula
modula.child # fails
因为您只告诉Python导入modula
,而不是modula.child
。您可以通过多种方式解决这个问题
1.在模块A中导入子模块
2.在脚本中导入child
(如果您不想在加载modula
时总是加载child
的开销,您可能需要这样做:
只是一种预感,但是尝试从modula import*
而不是import modula
modula.child()
调用模块子级。尝试以下操作:modula.child.child()
没有,我已经尝试过了,但没有成功。据我记忆所及,我需要在init.py和/或append搜索路径中添加一些内容。我已经有一段时间没有使用python了,完全忘记了如何解决这个问题。谢谢,看来我需要刷新我的python知识谢谢你的完整解释
import modula
modula.child()
modulae.py", line 5, in <module>
modula.child()
AttributeError: module 'modula' has no attribute 'child'
modula
__init__.py
child.py
import modula
modula.child # fails
# __init__.py
# use a relative import because we're importing from the same package,
# otherwise this could be ambiguous (and doesn't work at all in
# Python 3).
from . import child
# Now in my script I can do:
import modula
modula.child
# Script
import modula.child
modula.child # works