Python模块如何导入__all__属性?

Python模块的开头通常会定义一个__all__属性,该属性实际上是一个元组,该元组中包含的元素决定了在使用from…import 语句导入模块内容时通配符所包含的内容。 如果__all__中只包含模块的部分内容,那么from…import *语句只会将__all__中包含的部分内容导入程序。 Python技术文章2021-06-16 |传智教育 |Python模块,all属性导入
Python模块如何导入__all__属性?

Python模块的开头通常会定义一个__all__属性,该属性实际上是一个元组,该元组中包含的元素决定了在使用from…import 语句导入模块内容时通配符所包含的内容。 如果__all__中只包含模块的部分内容,那么from…import *语句只会将__all__中包含的部分内容导入程序。

假设当前有一个自定义模块calc.py,该模块中包含计算两个数的四则运算函数,具体代码如下:

def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if (b):
return a / b
else:
print("error")

在calc模块中设置__all__属性为[“add”, “subtract”],此时其他Python文件导入calc模块后,只能使用calc模块中的add()与subtract()函数,示例代码如下:

__all__ = ["add", "subtract"]

通过“from …import *”方式导入calc模块,然后使用
该模块中的add()函数与subtract()函数,具体如下。

from calc import *
print(add(2, 3))
print(subtract(2, 3))

运行程序,结果如下所示。

5
-1

下面尝试使用calc模块的multipty()和divide()函数,具体代码如下.

print(multipty(2, 3))
print(divide(2, 3))

运行程序,出现如下所示的异常信息:

NameError: name 'multiply' is not defined
Python教程

通用爬虫和聚焦爬虫介绍【Python技术文章】

2021-7-10 12:42:19

Python教程

pip命令下载安装第三方模块【Python技术文章】

2021-7-10 12:42:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索