python中的` 您所在的位置:网站首页 python中init函数详解 python中的`

python中的`

#python中的`| 来源: 网络整理| 查看: 265

定义: __all__是一个可以用来暴露接口的全局变量 使用: 可以分为在普通模块内使用和在包下的__init__.py使用

在普通模块内使用

比如c1,c2同属于module1包内部的模块,c2调用c1中的元素,但是因为c1中使用__all__限定了有效变量或者函数,则c2会调用失败 在这里插入图片描述

c1.py

__all__ = ['a','b'] a = 28 b = 3 c = 43

c2.py

from c1 import * # print("hello, i am c2.py") print(a) print(b) print(c)

执行python c2.py结果: 在这里插入图片描述

在实际使用中,如果别人调用你的函数,你可以选择性的将一些函数、变量等通过该全局变量进行暴露

在包下的__init__.py使用

__init__.py的作用有三个:

作为包的标志,一个文件夹有了它才叫做包它可以为空,也可以将各个模块通用的一些变量、函数等进行初始化,提高代码运行效率通过__all__来决定公开内部的哪些模块供调用

我们重点看第三个作用。

我在module1中定义c1,c2,将__init__.py下的__all__中将c1,c2都包含进去:

在这里插入图片描述

c1.py:

print("hello. i am c1.py")

c2.py:

print("hello. i am c2.py")

__init__.py:

__all__ = ['c1','c2']

运行**python test.py**

from module1 import *

得到:

hello. i am c1.py hello, i am c2.py

可见,c1,c2接口都是可以调用的,假如我修改 __init__.py:

__all__ = ['c1']# 将c2去掉

运行**python test.py** 得到:

hello. i am c1.py

也就是c2.py不能够再被调用。

[完]



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有