Python模块和Python包有什么区别?

Python模块和Python包有什么区别?

任何Python文件都是一个模块,其名称为文件的基本名称/模块的name属性,不包含.py扩展名。包是一组Python模块,即包是包含额外init.py文件的Python模块目录。init.py区别于只包含一堆Python脚本的目录。只要相应的目录包含自己的init.py文件,包可以嵌套到任意深度。

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

例如,在datetime模块中,有一个子模块称为date。当您导入datetime时,它不会被导入。您需要单独导入它。

>>> 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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程