python入门——python模块

[复制链接]
`ivY) 发表于 2017-12-31 01:19:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
python大数据课堂已经开始了。想转行大数据,数据挖掘,机器学习,人工智能的小伙伴可以关注啦。上一篇带大家了解了python函数。今天我们来继续了解python中的模块。调试环境以python3.6环境为例。需要代码和demo的朋友可以搜索“栾鹏全栈”到我的CSDN博客。" R+ E7 B  O/ X# `+ g. _9 [
$ H6 _2 G& g6 u, B! W
第七部分. Python模块
& Q1 d( B0 q$ V3 h* [/ \  R$ T1 U
7、Python模块5 h% P% r8 G/ \5 t

) J; D8 g: [  z" B' cPython 模块(Module),是一个Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。+ U, c6 o5 W3 i4 s5 s6 O# z
模块让你能够有逻辑地组织你的Python 代码段。
5 E* d3 @7 a" R! S把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
" V1 S! P8 F, n% D7.1、导入模块的三种方法的区别5 {5 _+ {% a" }2 w* x3 A1 c
1)import导入6 O6 [( T  v& k8 P4 t) R) D
* g9 @0 f( X6 Q5 Q, S, o6 \
2)From … import导入
9 C0 p8 c$ U( V: a下面的语句可以将模块中的某一部分导入,它只会将里这个部分单个引入到执行这个声明的模块的全局符号表。这个部分可以是某个函数块,也可以是函数块的子函数块。) N3 e! J; I0 Y5 A: W* c8 U* a
. ^7 W% A) c& h; Y2 e" Z7 [
3)From … import * 导入# D! p- o& R% z+ R
前两种语句都是导入模块的部分,只是部分导入的位置不同,而使用From …import*则是导入模块的全部项目,尽量少用,太耗内存。
7 i0 s; P! \+ z. E: Y" H1 W2 b7.2、命名空间和作用域  [9 T% ~0 t) x2 L5 j; P
变量是拥有匹配对象的名字(标识符)。$ V9 g) e8 |* _) e% d7 }
命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。每个函数都会有自己的命名空间,当变量出现在函数内部时,Python默认其为局部变量,若存在一个与局部变量重名的全局变量,则由局部变量覆盖全局变量。
) J. E- b& Y( QPython的命名空间分局部命名空间和全局命名空间。
$ E' }  n$ i% z5 ~) P7.3、找出模块中所有的模块名、函数名、变量名(dir()函数)
2 ^1 Z8 w. N4 Q( u0 V4 D: t9 b
以上实例输出结果:
# B0 k# ^5 u" ^7 M9 z; P  L0 d6 _: H8 s7 B- j3 f
7.4、查看全局变量和局部变量命名空间2 ^1 f9 V8 B: |! A) t4 |9 G
根据调用地方的不同,globals()和 locals()函数可被用来返回全局和局部命名空间里的名字。% e9 d1 H2 ]- r8 k% y) O
如果在函数内部调用 locals(),返回的是所有能在该函数里访问的命名。  a, k8 [  b& _1 p) r; w
如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字。, |2 M# H2 z- M/ w# k" G, t
两个函数的返回类型都是字典。所以名字们能用 keys() 函数摘取。
6 O* o; p/ Y, L, A% Y5 L7.5、 reload() 函数7 |: \$ N  F! z( L( a' Z
当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。
! S* {" B$ k; T8 w因此,如果你想重新执行模块里顶层部分的代码,可以用 reload() 函数。该函数会重新导入之前导入过的模块。语法如下:在这里,module_name要直接放模块的名字,而不是一个字符串形式。6 K) K4 L, m) I  t5 q

; {9 F* G$ v' j. i
下节预告:python中I/O函数
* ?- A7 B- p- ^. l

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图