python模块讲解_python-模块详解

模块:

模块的分类:

第三方模块/扩展模块:没在安装python解释器的时候安装的那些功能

自定义模块:你写的功能如果是一个通用的功能,那你就把它当做一个模块

内置模块:安装python解释器的时候跟着装上的那些方法

什么是模块:

有的功能开发者自己无法完成,这样的话需要借助已经实现的函数\类来完成这些功能

你实现不了的功能都由别人替你实现了

操作系统打交道

和时间

1000取随机数

压缩一个文件

和网络通信

别人写好的一组功能 文件夹/py文件/C语言编译好的一些编译文件

为什么要有模块?

分类 管理方法

节省内存

提供更多的功能

模块的创建和导入;

import my_module 要导入一个py文件的名字,但是不加.py后缀名

import my_module 模块的名字必须要满足变量的命名规范

一般情况下 模块都是小写字母开头的名字

PEP8规范:

所有的模块导入都应该尽量放在这个文件的开头

模块的导入也是有顺序的

先导入内置模块

再导入第三方模块

最后导入自定义模块

import

import 的时候发生了什么

在import的时候命名空间的变换

重命名 as

一行导入多个模块

from ... import ...

from import 的时候发生了什么 仍然相当于执行了整个py文件

在import的时候命名空间的变换

1335014-20180803164415554-900530526.png

1335014-20180803164433783-1314398146.png

重命名 as

一行导入多个名字 导入了什么 就能使用什么 不导入的变量 不能使用 不导入并不意味着不存 而是没有建立文件到模块中其他名字的引用

from 模块 import *

* 和 __all__ 的相关性 __all__可以控制*导入的内容

from my_module import *login()from my_module importnameprint(name)

模块相关的其他知识

1.把模块当成脚本运行 : 从本模块中反射本模块中的变量

if __name__ == '__main__':

所有不需要调用就能执行的内容

importsys

getattr(sys.modules[__name__],'要反射的变量名')

2.模块搜索路径 sys.path

模块没导入之前在哪儿? 在硬盘上

安装python

python整个包的结构不变

它会记录一个安装目录

其他所有目录都是根据安装目录来写死的

除了你当前运行的脚本所在的目录和pycharm在你打开项目的时候给你添加进来的项目根目录

剩余所有都是python内置的目录

内置模块的导入

第三方模块的导入

内置模块的导入和第三方模块的导入都不需要你操心了

自定义的模块能否被导入

看sys.path当中 是否存在你要导入的文件 所在的目录

总结:

模块的搜索路径全部存储在sys.path列表中,导入模块的顺序,是从前到后找到一个符合条件的模块就立即停止不再向后寻找

如果要导入的模块和当前执行的文件同级,直接导入即可

如果要导入的模块和当前执行的文件不同级,需要把要导入模块的绝对路径添加到sys.path列表中

3.pyc编译文件

python的执行

解释 - 编译

当一个文件作为一个脚本被导入的时候

就会在这个文件所在的目录的__pycache__下生成一个编译好的文件

为了之后导入这个文件的时候直接读这个编译好的pyc文件就可以

可以节省一些导入时候的时间

4.重新加载模块 已经导入的模块即便被修改在程序执行过程中也不会生效

importlib.reload(aaa) # 表示重新加载

reload这种方式可以强制程序再重新导入这个模块一次

非常不推荐你使用

5.模块的循环引用 - 不允许

在模块的导入中 不要产生循环引用问题

如果发生循环导入了

就会发现明明写在这个模块中的方法,确偏显示找不到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python模块详解 各个模块详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10. cmath 模块 1.11. operator 模块 1.12. copy 模块 1.13. sys 模块 1.14. atexit 模块 1.15. time 模块 1.16. types 模块 1.17. gc 模块 更多标准模块 2.1. 概览 2.2. fileinput 模块 2.3. shutil 模块 2.4. tempfile 模块 2.5. StringIO 模块 2.6. cStringIO 模块 2.7. mmap 模块 2.8. UserDict 模块 2.9. UserList 模块 2.10. UserString 模块 2.11. traceback 模块 2.12. errno 模块 2.13. getopt 模块 2.14. getpass 模块 2.15. glob 模块 2.16. fnmatch 模块 2.17. random 模块 2.18. whrandom 模块 2.19. md5 模块 2.20. sha 模块 2.21. crypt 模块 2.22. rotor 模块 2.23. zlib 模块 2.24. code 模块 线程和进程 3.1. 概览 3.2. threading 模块 3.3. Queue 模块 3.4. thread 模块 3.5. commands 模块 3.6. pipes 模块 3.7. popen2 模块 3.8. signal 模块 数据表示 4.1. 概览 4.2. array 模块 4.3. struct 模块 4.4. xdrlib 模块 4.5. marshal 模块 4.6. pickle 模块 4.7. cPickle 模块 4.8. copy_reg 模块 4.9. pprint 模块 4.10. repr 模块 4.11. base64 模块 4.12. binhex 模块 4.13. quopri 模块 4.14. uu 模块 4.15. binascii 模块 文件格式 5.1. 概览 5.2. xmllib 模块 5.3. xml.parsers.expat 模块 5.4. sgmllib 模块 5.5. htmllib 模块 5.6. htmlentitydefs 模块 5.7. formatter 模块 5.8. ConfigParser 模块 5.9. netrc 模块 5.10. shlex 模块 5.11. zipfile 模块 5.12. gzip 模块 邮件和新闻消息处理 6.1. 概览 6.2. rfc822 模块 6.3. mimetools 模块 6.4. MimeWriter 模块 6.5. mailbox 模块 6.6. mailcap 模块 6.7. mimetypes 模块 6.8. packmail 模块 6.9. mimify 模块 6.10. multifile 模块 网络协议 7.1. 概览 7.2. socket 模块 7.3. select 模块 7.4. asyncore 模块 7.5. asynchat 模块 7.6. urllib 模块 7.7. urlparse 模块 7.8. cookie 模块 7.9. robotparser 模块 7.10. ftplib 模块 7.11. gopherlib 模块 7.12. httplib 模块 7.13. poplib 模块 7.14. imaplib 模块 7.15. smtplib 模块 7.16. telnetlib 模块 7.17. nntplib 模块 7.18. SocketServer 模块 7.19. BaseHTTPServer 模块 7.20. SimpleHTTPServer 模块 7.21. CGIHTTPServer 模块 7.22. cgi 模块 7.23. webbrowser 模块 国际化 8.1. locale 模块 8.2. unicodedata 模块 8.3. ucnhash 模块 多媒体相关模块 9.1. 概览 9.2. imghdr 模块 9.3. sndhdr 模块 9.4. whatsound 模块 9.5. aifc 模块 9.6. sunau 模块 9.7. sunaudio 模块 9.8. wave 模块 9.9. audiodev 模块 9.10. winsound 模块 数据储存 10.1. 概览 10.2. anydbm 模块 10.3. whichdb 模块 10.4. shelve 模块 10.5. dbhash 模块 10.6. dbm 模块 10.7. dumbdbm 模块 10.8. gdbm 模块 工具和实用程序 11.1. dis 模块 11.2. pdb 模块 11.3. bdb 模块 11.4. profile 模块 11.5. pstats 模块 11.6. tabnanny 模块 其他模块 12.1. 概览 12.2. fcntl 模块 12.3. pwd 模块 12.4. grp 模块 12.5. nis 模块 12.6. curses 模块 12.7. termios 模块 12.8. tty 模块 12.9. resource 模块 12.10. syslog 模块 12.11. msvcrt 模块 12.12. nt 模块 12.13. _winreg 模块 12.14. posix 模块 执行支持模块 13.1. dospath 模块 13.2. macpath 模块 13.3. ntpath 模块 13.4. posixpath 模块 13.5. strop 模块 13.6. imp 模块 13.7. new 模块 13.8. pre 模块 13.9. sre 模块 13.10. py_compile 模块 13.11. compileall 模块 13.12. ihooks 模块 13.13. linecache 模块 13.14. macurl2path 模块 13.15. nturl2path 模块 13.16. tokenize 模块 13.17. keyword 模块 13.18. parser 模块 13.19. symbol 模块 13.20. token 模块 其他模块 14.1. 概览 14.2. pyclbr 模块 14.3. filecmp 模块 14.4. cmd 模块 14.5. rexec 模块 14.6. Bastion 模块 14.7. readline 模块 14.8. rlcompleter 模块 14.9. statvfs 模块 14.10. calendar 模块 14.11. sched 模块 14.12. statcache 模块 14.13. grep 模块 14.14. dircache 模块 14.15. dircmp 模块 14.16. cmp 模块 14.17. cmpcache 模块 14.18. util 模块 14.19. soundex 模块 14.20. timing 模块 14.21. posixfile 模块 14.22. bisect 模块 14.23. knee 模块 14.24. tzparse 模块 14.25. regex 模块 14.26. regsub 模块 14.27. reconvert 模块 14.28. regex_syntax 模块 14.29. find 模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值