包的使用

包的写作要求


通过from和import 可以查询包中的指定方法
有两种
1.from day1.day2 import cen2
cen2.cen2()
2.import day1.day2.cen2 as f
f.cen2()
这两种都是绝对路径那都好使,就是用起来不灵活
还有一种省略的方法
from day1.day2.cen2 import *

通过from和import可以获取到整个包
两种
1.from day1.day2 import *
拿到的是day2中所有的模块
取值方式
cen3.cen3()
2.import day1
取值方式
day1.day2.cen2.cen2()
需要设置__init__如# from . import day2 每个init都要配置
这里拿到的是整个包中所有的模块,但是想要使用模块中的函数换需要使用绝对路径取获取
总结:无论是想要获得模块还是包其实都是通过绝对路径

相对路径不能使用到最外层,上级必须是包
注意:这里如果使用相对路径只能在启动文件中执行,如果在当前文件夹引用时会报错

问题:
如果想要调用同级模块中的函数时,使用相对路径时,在本页面能运行不一定在启动文件中能用
解决:
通过i
import os
import sys
b=os.path.dirname(file)
sys.path.insert(0,b)
再次调用相对路径时自动获取父级的绝对路径。将代码复制到别的文件时也可以直接使用

posted @ 2019-08-27 21:07  风景!  阅读(154)  评论(0编辑  收藏  举报