为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 Python课堂笔记 第7章 包、模块、函数与变量作用域

Python课堂笔记 第7章 包、模块、函数与变量作用域

2017.11.14 09:34 2682浏览

7-6 Python包与模块的名字
如果想让普通的文件夹成为包,里面必须包含init.py文件,本身也是个模块,可以空着就用来文件夹是包,也可以在里面写代码,这个模块的名字就是包的名字,其他模块的名字是包名字.模块名字


7-7 import导入模块
引用其他模块的变量需要导入其他模块
seven包里面有三个模块,c1.py,c2.py,init.py
c1模块:a = 2
c2模块:import c1
print(c1.a)
如果将c1从seven包移到t包(t包是seven包子包)
c2模块:import t.c1
print(t.c1.a)
也可以用as简化字符路径
c2模块:import t.c1 as m
print(m.a)
虽然import函数容易导致命名空间过长问题,但是可以直接看出变量属于哪个模块哪个包


7-8 from import导入变量
from t.c1 import a
print(a)

可以一次性引入所有变量
from t.c1 import

print(a)
print(b)
print(c)

如果想只导入c1中的a,c,则使用双下划线all语句
c1模块:
all= ['a','c']
a = 2
c = 3
d = 4
c2模块:
from t.c1 import *
print(a)
print(b)
print(c)
或from t.c1 import a,c


7-9 init.py的用法
导入变量过多时,一行末尾加\换行,或者用()将所有变量括起来
all= ['c1']只导入c1模块
在t包中的init.py模块里面引入很多系统库,在其他模块中只要写import t则可以实现批量导入


7-10 包与模块的几个常见错误
包和模块不会被重复导入,无论一个模块被其他多少个模块导入过,都只会导入1次
避免循环导入,模块c2中导入c1,然后c1中又导入c2
在一个模块导入另一个模块,会执行这个模块里面所有的代码


7-12 入口文件和普通模块内置变量的区别
print('name:' +name)
print('package:' +(package or '当前模块不属于任何包'))
print('doc:' +(doc or '当前模块没有文档注释'))
print('file:' +file)
一个文件如果被当做入口文件,则该文件不属于任何包,且该文件的名字会输出main


7-13 name的经典应用
用dir()可以显示出当前模块所有内置变量

打印系统的内置变量
import sys
infos = dir()
print(infos)


7-14,15 相对导入和绝对导入
一个模块的顶级包和main.py(入口文件)所在的层级有关
绝对路径必须从顶级包开始
import不可以使用相对路径导入
相对导入:.本级目录 ..上一级目录 …上上级目录
用form import 进行相对路径导入

不可以引入超过顶级包的路径
m2的顶级包是package2
m5和main.py是同一级别,main.py不属于任何包
入口文件不可以使用相对路径
用python -m指令可以将入口文件当作普通模块执行

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
学生
手记
粉丝
11
获赞与收藏
16

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

151篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消