标签:def 一个 pre pack nbsp 生成文件 就是 ons print
一、什么是包? package
1、含有一个__init__.py的文件就是一个包
2、包中通常含有一些py文件
二、从包中导入模块 ****
方法一: import
import glance2.api.policy glance2.api.policy.get() import glance2.api.policy as policy # 以文件名取别名 policy.get()
方法二:from import
from glance2.api import policy policy.get() from glance2.api.policy import get get()
三、包的导入
生成文件夹
import os os.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)
生成这个包之后,如何把这个包导入到文件中呢?
1、在这个包的同级目录中的__init__.py中去配置 # from glance2 import api
2、在这个包中api的__init__.py中去配置 # from glance2.api import policy
3、再这个policy 中写入 get()函数
4、在这个需要导入包的文件中执行这个包
3.2 相对导入: 运用了相对导入的文件不能被直接执行 ,缺点就是不能在当前文档中执行,只能作为一个模块被调用执行
# ‘.’表示当前目录
from .import api
# ‘..’表示上一级目录
from ..cmd import manage def get(): print(‘777‘) manage.main()
* 与 __all__
from .api import * # 上级目录的__init__ __all__ = [‘policy‘,‘versions‘] # 在api 的__init__里面写
标签:def 一个 pre pack nbsp 生成文件 就是 ons print
原文地址:https://www.cnblogs.com/youhongliang/p/9609376.html