本章描述了一些基本的标准库模块。 任何大型 Python 程序都有可能直接或间
接地使用到这类模块的大部分。
一、核心模块介绍
1.1.内建函数和异常
下面的这两个模块比其他模块加在一起还要重要: 定义内建函数(例如 len, int, range ...)的 _ builtin _ 模块, 以及定义所有内建异常的 exceptions模块。
Python 在启动时导入这两个模块, 使任何程序都能够使用它们。
1.2. 操作系统接口模块
这类的模块包括: 提供文件和进程处理功能的 os 模块; 提供平台独立的文件名处理 (分拆目录名, 文件名, 后缀等)的 os.path 模块; 以及时间日期处理相关的 time/datetime 模块。
网络和线程模块同样也可以归为这一个类型。
1.3. 类型支持模块
string 模块实现了常用的字符串处理。math 模块提供了数学计算操作和常量(pi, e 都属于这类常量), cmath 模块为复数提供了和 math 一样的功能。
1.4. 正则表达式
re 模块为 Python 提供了正则表达式支持。正则表达式是用于匹配字符串或特
定子字符串的有特定语法的字符串模式。
1.5. 语言支持模块
sys 模块可以让你访问解释器相关参数,比如模块搜索路径,解释器版本号等。
operator 模块提供了和内建操作符作用相同的函数。 copy 模块允许你复制对
象, gc 模块提供了对垃圾收集的相关控制功能。
二、 __builtin__ 模块
这个模块包含 Python 中使用的内建函数。 一般不用手动导入这个模块; Python 会帮你做好一切。
2.1. dir函数
dir 返回由给定模块, 类, 实例, 或其他类型的所有成员组成的列表。
可以用来打印某个实例具备的函数。
dir([])
output: ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove','reverse', 'sort']
2.2. vars函数
vars 函数与此相似, 它返回的是包含每个成员当前值的字典。如果你使用不带参数的 vars , 它将返回当前局部名称空间的可见元素(同 locals() 函数 )。
>>> book = "library"
>>> pages = 250
>>> scripts = 350
>>> print(vars()['book'])
library
>>> print ("the %(book)s book contains more than %(scripts)s scripts" % vars())
the library book contains more than 350 scripts
2.3. type函数
type 函数允许你检查一个变量的类型。
>>> book = "library"
>>> pages = 250
>>> scripts = 350.0
>>> print(type(book))
<class 'str'>
>>> print(type(pages))
<class 'int'>
>>> print(type(scripts))
<class 'float'>
2.4. isinstance函数
可以使用 isinstance 函数,它会检查一个对象是不是给定类(或其子类)的实例。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
a = 2
>>> print(isinstance (a,int))
True
>>> print(isinstance (a,str))
False
>>> print(isinstance (a,(str,int,list))) # 是元组中的一个返回 True
True
2.5. issubclass函数
issubclass 函数与此相似, 它用于检查一个类对象是否与给定类相同, 或者是
给定类的子类。
注意, isinstance 可以接受任何对象作为参数, 而 issubclass 函数在接受非
类对象参数时会引发 TypeError 异常。
class A:
pass
class B(A):
pass
print(issubclass(B,A))
output: True
2.6. eval函数
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
>>> x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> print( eval("__import__ ('os').getcwd()") )
F:\projects\test