Python 从包中单独文件中的类创建对象

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

如何正确使用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”没有属性“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