python模块和python包之间有什么区别?

任何Python文件都是模块,其名称是文件的基本名称/模块的__name__属性,不带.py扩展名。包是Python模块的集合,即,包是包含附加__init__.py文件的Python模块目录。__init__.py将包与恰好包含一堆Python脚本的目录区分开。包可以嵌套到任何深度,只要相应的目录包含它们自己的__init__.py文件。

导入模块或包时,Python创建的相应对象始终是模块类型。这意味着模块和软件包之间的区别仅在于文件系统级别。但是请注意,在导入包时,仅该包的__init__.py文件中的变量/函数/类是直接可见的,子包或模块则不可见。

例如,在datetime模块中,有一个名为date的子模块。导入日期时间时,不会导入它。您需要单独导入。

>>> import datetime

>>> date.today()

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'date' is not defined

>>> from datetime import date

>>> date.today()

datetime.date(2017, 9, 1)

以上是 python模块和python包之间有什么区别? 的全部内容, 来源链接: utcz.com/z/348852.html

回到顶部