Python在同一个包中的__init__.py中导入类

时间:2015-06-30 01:57:40

标签: python class import module directory

我觉得我应该知道这一点,我已经用Python编程了,但是我不断学习关于精细语言的新东西。我有这个问题(可能很复杂,但是我还没能找到同样的情况)就是这个问题。我有这样的文件布局:

websocket/
    __init__.py
    client.py
    server.py

如何从__init__.pyclient.py导入文件server.py中的类?很好,很简单:P提前谢谢!我的问题不是this的副本,因为我是从包内导入的,无论如何,做人们在答案中所做的事情根本没有帮助。

1 个答案:

答案 0 :(得分:1)

__init__.py文件中定义的名称在包名称空间本身中作为名称提供。

因此,如果您的Connection包中有__init__类,则从包内导入它的方式与使用包的方式相同:通过包名称引用它如在

from websocket import Connection

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

from . import Connection