概述
模块是Python中一个包含Python代码的文件,通常以.py
为扩展名。模块可以包含函数、类和变量,也可以包含可执行的代码。模块的主要作用是组织和封装代码,以便于重用和维护。
导入模块的5种方式
import 模块名
模块名.功能名()
的方式来调用。import 模块名 as 别名
别名.功能名()
的方式调用。from 模块名 import 功能名
功能名()
的方式调用。from 模块名 import 功能名 as 别名
别名()
的方式调用。from 模块名 import *
_
开头的名称),之后可以直接通过功能名调用。但这种方式通常不推荐,因为它可能导致命名冲突。使用自定义模块
概述
自定义模块就是你自己编写的.py
文件,其中包含了类、变量、函数等。
导包方式
与导入标准库模块或第三方库模块的方式相同,可以使用上述的五种方式之一。
细节
命名冲突:如果同时导入了两个模块,且它们有重名的功能,则后导入的功能会覆盖先导入的功能(在相同的命名空间中)。
__name__
属性
__name__
时,其值为'__main__'
,表示该模块是被直接运行的。__name__
的值为被导入的模块名。__name__
的值,可以决定是否执行某些只在模块被直接运行时才应该执行的代码。__all__
属性
from 模块名 import *
这种导入方式有效。__all__
,则默认导入模块中定义的所有公共名称(即不以单下划线_
开头的名称)。__all__
,则只导入__all__
列表中指定的名称。__all__
来限制导入的内容。概述
包(Package)是一个包含__init__.py
文件的目录(在Python 3.3及以后的版本中,空的__init__.py
文件不再是必需的,但保留它可以提高兼容性)。包可以包含模块和子包,用于组织和封装相关的模块。
关系
包 > 模块 > 类、变量、函数
细节
大白话翻译:包 = 文件夹 + __init__.py
(尽管在Python 3.3及以后版本,__init__.py
可以省略)。
组织模块:可以将功能相似的模块(例如,都是操作文件系统的,或者都是进行数学计算的)放在同一个包中,以便于集中管理和维护。
包的导入
__init__.py
的目录。导包的两种方式
import 包名.模块名
包名.模块名.功能名()
的方式来调用该模块中的功能。from 包名 import 模块名
模块名.功能名()
的方式来调用该模块中的功能。__init__.py
中的__all__
属性
默认:如果不设置__all__
,则from 包名 import *
不会导入包中的任何内容(除了__init__.py
中明确定义的)。
指定:在__init__.py
中设置__all__
,可以指定from 包名 import *
时应该导入哪些模块或子包。这对于控制包的导出内容非常有用,可以避免不必要的导入和潜在的命名冲突。