当前位置:首页 >> 脚本专栏

Python新手学习标准库模块命名

与Python标准库模块命名冲突

Python的一个优秀的地方在于它提供了丰富的库模块。但是这样的结果是,如果你不下意识的避免,很容易你会遇到你自己的模块的名字与某个随Python附带的标准库的名字冲突的情况(比如,你的代码中可能有一个叫做email.py的模块,它就会与标准库中同名的模块冲突)。

这会导致一些很粗糙的问题,例如当你想加载某个库,这个库需要加载Python标准库里的某个模块,结果呢,因为你有一个与标准库里的模块同名的模块,这个包错误的将你的模块加载了进去,而不是加载Python标准库里的那个模块。这样一来就会有麻烦了。

所以在给模块起名字的时候要小心了,得避免与Python标准库中的模块重名。相比起你提交一个“Python改进建议(Python Enhancement Proposal (PEP))”去向上要求改一个标准库里包的名字,并得到批准来说,你把自己的那个模块重新改个名字要简单得多。

知识点扩充:

python标准库简介

文本

  • string:通用字符串操作
  • re:正则表达式操作
  • difflib:差异计算工具
  • textwrap:文本填充
  • unicodedata:Unicode字符数据库
  • stringprep:互联网字符串准备工具
  • readline:GNU按行读取接口
  • rlcompleter:GNU按行读取的实现函数

二进制数据

  • struct:将字节解析为打包的二进制数据
  • codecs:注册表与基类的编解码器

数据类型

  • datetime:基于日期与时间工具
  • calendar:通用月份函数
  • collections:容器数据类型
  • collections.abc:容器虚基类
  • heapq:堆队列算法
  • bisect:数组二分算法
  • array:高效数值数组
  • weakref:弱引用
  • types:内置类型的动态创建与命名
  • copy:浅拷贝与深拷贝
  • pprint:格式化输出
  • reprlib:交替repr()