为了账号安全,请及时绑定邮箱和手机立即绑定

Python 3.3+中的软件包不需要__init__.py吗

Python 3.3+中的软件包不需要__init__.py吗

神不在的星期二 2019-12-11 10:09:41
我正在使用Python 3.5.1。我在这里阅读了文档和包部分:https : //docs.python.org/3/tutorial/modules.html#packages现在,我具有以下结构:/home/wujek/Playground/a/b/module.pymodule.py:class Foo:    def __init__(self):        print('initializing Foo')现在,在/home/wujek/Playground:~/Playground $ python3>>> import a.b.module>>> a.b.module.Foo()initializing Foo<a.b.module.Foo object at 0x100a8f0b8>同样,现在在家里,超级文件夹Playground:~ $ PYTHONPATH=Playground python3>>> import a.b.module>>> a.b.module.Foo()initializing Foo<a.b.module.Foo object at 0x10a5fee10>实际上,我可以做各种事情:~ $ PYTHONPATH=Playground python3>>> import a>>> import a.b>>> import Playground.a.b为什么这样做?我虽然都需要__init__.py文件(空文件可以工作),a并且b要module.py在Python路径指向Playground文件夹时可导入?这似乎与Python 2.7有所不同:~ $ PYTHONPATH=Playground python>>> import aImportError: No module named a>>> import a.bImportError: No module named a.b>>> import a.b.moduleImportError: No module named a.b.module随着__init__.py在这两个~/Playground/a和~/Playground/a/b它工作正常。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 288 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信