python基础-生成包、导入模块、包下_init_模块(__all__方法)
来源:互联网 发布:生产线电子看板数据 编辑:程序博客网 时间:2024/05/18 06:25
- 生成包
- 导入包下的模块以及包下_init_初始化模块
- _init_下的_all__方法
生成包
我们通过代码生成系列包
#什么是包:一群模块文件的集合+__init__#py2 : 必须有__init__#py3:不是必须的了import osos.makedirs('glance/api')os.makedirs('glance/cmd')os.makedirs('glance/db')l = []l.append(open('glance/__init__.py','w'))l.append(open('glance/api/__init__.py','w'))l.append(open('glance/api/policy.py','w'))l.append(open('glance/api/versions.py','w'))l.append(open('glance/cmd/__init__.py','w'))l.append(open('glance/cmd/manage.py','w'))l.append(open('glance/db/models.py','w'))map(lambda f:f.close() ,l)
看下项目列表结构
导入包下的模块、以及包下_init_初始化模块
关于包相关的导入语句也分为import和from … import …两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。可以带有一连串的点,如item.subitem.subsubitem,但都必须遵循这个原则。
我们在生成api包下的policy.py里面写入一段代码如下:
print("policy")
我们在生成api包下的init.py里面写入一段代码如下:
print("api init")
然后导入api包下的policy.py的模块
from glance.api import policy,versions# from glance import api.policy(这样写法错误的)
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/4.包.pyapi initpolicyProcess finished with exit code 0
不管是哪种方式,只要是第一次导入包或者是包的任何其他部分,都会依次执行包下的init.py文件(我们可以在每个包的文件内都打印一行内容来验证一下),这个文件可以为空,但是也可以存放一些初始化包的代码。
_init_下的_all__方法
init.py
print("api init")x=10def func(): print('from api.__init.py')__all__=['x','func','policy']
policy.py
print("policy")
versions.py
print("--version--")
然们导入上面的包下的模块
from glance.api import *print(x)func()
输出如下:
E:\python\python_sdk\python.exe E:/python/py_pro/4.包.pyapi initpolicy10from api.__init.pyProcess finished with exit code 0
我们看到在versions.py中的print(“–version–”)么有输出,因为all=[‘x’,’func’,’policy’]没有包含在内,故不能导入该模块
阅读全文
0 0
- python基础-生成包、导入模块、包下_init_模块(__all__方法)
- python 包 模块导入
- Python中包,模块导入的方法
- python导入包中的模块的方法
- python学习(2):自定义包结构及__init__.py模块和__all__变量的使用
- python 包和导入模块
- ubuntu下python包(模块)的安装方法
- Python基础-包与模块
- Python的模块导入、包导入
- Python中导入包中模块的方法及区别
- python里__all__ 属性分别于模块和包之中的用法
- python里__all__ 属性分别于模块和包之中的用法
- python模块及包的导入
- python模块及包的导入
- python模块及包的导入
- Python导入自定义包或模块
- python模块及包的导入
- python从包中导入模块
- 二叉树的构造与遍历
- Java集合(五)- HashTable详解
- ATOM 安装+配置炫酷的activate-power-mode..
- FFMPEG视音频编解码资料收集
- 算法分析设计与分析-蛮力法(3)--顺序查找
- python基础-生成包、导入模块、包下_init_模块(__all__方法)
- win server 安装oracle到12%出错
- TensorFlow实战4:实现简单的多层神经网络案例
- c++编译提示:系统找不到指定路径
- Android 快速搭建App架构
- 接口代理
- Linux下安装rar命令,简易而不简单
- ActiveMQ(三)
- Python编程从入门到实践:习题4-10~4-12