__init__.py中的Python导入类来自同一包中的文件

Jer*_*ov2 5 python directory import module class

我觉得我应该知道这一点,因为我已经使用Python进行了很长时间的编程,但是我一直在不断学习有关精细lanuaguge的新知识。我有一个问题(很可能是重复的,但是我找不到相同的情况)是这个问题。我有这样的文件布局:

websocket/
    __init__.py
    client.py
    server.py
Run Code Online (Sandbox Code Playgroud)

如何__init__.pyclient.py或导入文件中的类server.py?漂亮又简单:P预先感谢!我的问题是不是重复这个,因为我从包内导入,并且在任何情况下,做什么人在回答确实都没有帮助。

jsb*_*eno 2

__init__.py文件中定义的名称可用作包命名空间本身中的名称。

因此,如果您Connection的包中有一个类__init__,则可以从包内部导入它,就像使用包的方式一样:通过包名称引用它,如下所示

from websocket import Connection
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因你的包没有在你的 pythonpath 中配置,或者你的目录名称可以改变,你可以使用相对导入 - 在这种情况下,引用当前的包,就像.这意味着在你的包中client.py你可以这样做:

from . import Connection
Run Code Online (Sandbox Code Playgroud)