栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【python机制 - 05】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【python机制 - 05】

__all__通常用于项目中的引用保护。

定义aa.py文件如下:

def a1():
    print('a1 from aa.py')


def a2():
    print('a2 from aa.py')

定义bb.py文件如下:

from aa import *


a1()
a2()

执行bb.py,得到输出:

a1 from aa.py
a2 from aa.py

将aa.py修改为

__all__ = ['a1']


def a1():
    print('a1 from aa.py')


def a2():
    print('a2 from aa.py')

此时执行bb.py,得到输出:

a1 from aa.py
Traceback (most recent call last):
  File "bb.py", line 4, in 
    a2()
NameError: name 'a2' is not defined

将bb.py修改为:

from aa import a1, a2  # IDE一般会提示 "'a2' is not declared in __all__"


a1()
a2()

执行bb.py,得到输出:

a1 from aa.py
a2 from aa.py

由此可见__all__可以作为一种import的保护机制,另外from ... import ...的形式不会受__all__的影响。不过在项目中最好还是采用from module import func1, func2的形式,这样会更加规范,可读性也会更好。

博主会持续更新一些人工智能领域的知识和实践、工作中遇到的问题和感悟、高效工作的方法和技巧,如果喜欢请关注、点赞、收藏支持

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号