首页技术文章正文

Python模块的__all__属性介绍

更新时间:2021-06-16 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif

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

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

def add(a, b):    return a + bdef subtract(a, b):    return a - bdef multiply(a, b):    return a * bdef 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连接Mysql数据库需要安装什么模块?

python日志模块 logging怎么用?

黑马程序员Python+大数据开发课程

分享到:

Java培训班课程javaee

Python培训机构python大数据

web前端培训课程升级V8.5web

AI+设计培训课程ui

大数据培训课程cloud

软件测试培训课程test

c

新媒体运营培训netmarket

产品经理培训课程pm

linux培训Linux

movies

智能机器人培训robot

电商视觉设计课程uids

AI

集成电路应用开发(嵌入式)培训课程jdbc

在线咨询 我要报名
和我们在线交谈!