Python-内置函数和标准库

这里对 Python3 内置函数和标准库的简单介绍做了分类汇总,用于备忘。

内置函数

通用
  1. callable(object):判断一个对象是否可调用,如果一个实例的类实现了call()方法,则它是可以调用的。
>>> f = lambda x,y : x+y
>>> callable(f)   # f是函数对象,可调用
True
>>> a = 10   # a 不可调用
>>> callable(a)
False
  1. classmethod(function):返回一个类方法。
  2. delattr(object, name):删除一个对象的属性,相当于del object.name。
  3. dict():字典类型的构造函数。
  4. dir():返回一个包含了 object 所有属性的列表对象,如果没有参数,则包含当前作用域的所用属性。
  5. enumerate(iterable, start=0):返回一个可迭代的 enumerate object,对其使用 next() 得到的是包含索引和元素的tuple,通常用于同时遍历索引和元素:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

>>> for x in enumerate(seasons):   # 遍历
...     print(x, end=' ')
... 
(0, 'Spring') (1, 'Summer') (2, 'Fall') (3, 'Winter')
# 相当于:
def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1
  1. frozenset(): frozenset 的构造函数。顾名思义,frozenset是一种 set 类型,且不可改变(没有add、remove等方法)。
  2. getattr(object, name):获得对象的name属性,当该属性不存在的时候可以使用一个默认值作为返回值。
  3. globals():返回一个包含当前所有全局符号和对应值的字典。
  4. hasattr(object, name):判断对象是否有name属性。
  5. hash(object):返回对象的 hash 值,object 必须是可哈希的。注意:所有不可变的内置类型都是 hashable 的,比如 string,tuple;所有可变的内置类型都是 unhashable 的,比如 list,dict(即没有__hash__()方法)。
  6. help():查看一个对象的帮助文档。
  7. id():返回一个对象的 id 身份,可以看作该对象的内存地址。
  8. input():读取一行输入并返回一个字符串。
  9. issubclass(class,baseclass):判断一个类是否是另一个类的子类。
  10. iter():返回一个可迭代的对象。
  11. len():返回一个长度值,与 object 中的__len__()有关。
  12. list(): list 的构造函数。
  13. isinstance(object, class):判断对象 object 是不是类 class 或其派生类的实例。
  14. locals():返回一个包含当前局部符号和对应值的字典,与globals() 对应。
  15. memoryview(obj):返回一个 memory view 对象。
  16. next(iterator):产生下一个生成值,与__next__()有关。
  17. open():打开一个文件,返回对应的文件对象。
  18. print():打印输出。
  19. property(fget=None, fset=None, fdel=None, doc=None):函数 property() 的作用就是把类中的方法当作属性来访问。看下面的例子:
class C:
    def __init__(self):
        self.__x = None

    def getx(self):
        return self.__x

    def setx(self, value):
        self.__x = value

    def delx(self):
        del self.__x
        
    x = property(getx, setx, delx, "I'm the 'x' property.")
# 为了操作数据成员 __x,我们需要使用 getx、setx、delx 方法,很麻烦。但是如果通过 property 函数将方法绑定到成员x,那么当获取成员x的值时,就会调用getx函数;当给成员x赋值时,就会调用setx函数;当删除x时,就会调用delx函数:
c = C()
print(c.x)    # 相当于c.getx()
c.x = 20      # 相当于c.setx(20)
del c.x       # 相当于c.delx()
# 这样通过 x 间接调用方法操作 __x 就方便多了。
  1. range(start, stop[, step]):返回一个序列。
  2. reversed():倒序序列,对象需要实现__reversed__()方法。
  3. set(): set 的构造函数。
  4. setattr(object, name, value):为一个对象(类或实例)的 name(属性或方法) 属性设置(新增或改变)一个 value(值或函数) 值。
  5. slice(start,stop[,step]):切片函数,分割一个可分割的对象,返回其中的一部分。
  6. staticmethod(function):返回一个静态的方法。要知道,一个类的静态方法没有隐式的第一个 self 参数,因为静态方法是独立于实例对象的:
class C:
    @staticmethod
    def f(arg1, arg2, ...): ...
  1. super(): super() 常用于继承中调用父类的方法。例如,类的继承中,通常需要调用父类的构造方法,以初始化父类部分,有两种方法能达到这个目的。
方法一:调用未绑定的父类构造方法
class A:
    def __init__(self):
        self.a = 'A_method'

class B:
    def __init__(self):
        self.b = 'B_method'

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)
        # ...其他超类
        self.c = 'C_method'
方法二:使用super函数
class A:
    def __init__(self):
        super().__init__()
        self.a = 'A_method'

class B:
    def __init__(self):
        super().__init__()
        self.b = 'B_method'

class C(A, B):
    def __init__(self):
        super().__init__()    # 等价于super(C,self).__init__()
        self.c = 'C_method'
# 可以看出,方法一更直观,但是方法二使用 super 函数可以一次初始化所有超类(但要确保所有的超类的构造方法都使用了super函数)。
# 当继承结构很复杂时,方法二明显更适用,当然 super 不仅可以用于构造方法还可以用于其他方法。
# 使用 super 还有一个好处,就是当改变父类名时,不需要再去修改其他地方,便于代码的维护。
  1. tuple():元组的构造函数。
  2. type():返回一个对象的类型,返回值与object.__class__一样。
  3. vars(object):返回 object 中所有属性与对应值的字典。没有参数时作用和locals()一样。
  4. zip(): zip 函数接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),还可以用来创造字典。
keys = ['name','age']
values = ['xiaobai',18]
my_dict = dict(zip(keys,values))
print(my_dict)
Out:{'name': 'xiaobai', 'age': 18}
字节
  1. bytearray(): bytearray的构造函数。bytearray类型是一个可变的整数序列(0 <= 整数 < 256),即字节数组,例如:
>>> a = bytearray(b'after')
>>> list(a)   # convert a bytearray object into a list of integers
[97, 102, 116, 101, 114]
  1. bytes(): 字节对象(bytes object)的构造函数。bytes是bytearray的不可变版本:
>>> a = bytes('after', 'UTF-8')
>>> list(a)   # convert a bytes object into a list of integers
[97, 102, 116, 101, 114]
字符串
  1. ascii(object):类似于repr(),返回一个输入对象的可打印的字符串。
  2. bin(x):将整数 x 转化为一个二进制字符串。当 x 不是 int 对象时,x 必须实现__index__()方法来返回一个整型数值。
>>> bin(9)
'0b1001'
  1. chr(i):返回编码值 i 对应的字符(str类型),i 的有效值为 0 到 1114111。与ord()正好相反。
>>> chr(97)
'a'
  1. format(value[, spec]):格式化一个值,当参数是一个自定义对象的时候,该对象需要实现__format__()方法。
>>> format(3.1415926, '7.3g')
'   3.14'
  1. hex(x):将一个整数转为小写的十六进制字符串(以’0x’开头),如果不是int对象,需要定义 index()方法。
  2. oct(x):将一个整数转为一个八进制字符串。如果不是 int 对象,需要定义__index__()方法。
  3. ord(c):返回字符 c 的编码值,与chr(i)相反。
>>> ord('a')
97
  1. repr(object):将对象转化为可打印的字符串。
  2. str():字符串的构造函数。
数值
  1. abs(x):返回一个整数或浮点数的绝对值,如果是复数,返回它的模。
  2. all(iterable):当 iterable 中所有元素都为 True 时(或者 iterable 为空),返回 True 。
  3. any(iterable):当 iterable 中有元素为 True 时,则返回 True 。如果 iterable 为空,返回 False 。
  4. bool(x):将一个值转换成一个boolean类型的值,省略 x 将返回 False。
>>> bool()
False
>>> bool('fedora')
True
  1. complex(re, im):复数的构造函数,re 为返回复数对象的实数部分,im 为虚数部分。
  2. divmod(a, b):返回一个元组(a//b, a%b)。
  3. float(x):返回一个浮点型的对象,无参时返回0.0
  4. int(x, base=10):返回字符串 x 相应进制的 int 值。
  5. max():最大值。
  6. min():最小值。
  7. pow(x, y[, z]):pow(x, y)相当于x**y,pow(x, y, z)相当于pow(x, y) % z。
  8. round(number[, ndigits]):把浮点数转变成指定小数位数的数,ndigits默认为0。
>>> round(1.75368, 3)
1.754
  1. sum():求和。
  2. sorted():排序。
标准库

文本
模块名介绍
string包含一个通用的 Template 类,具有适用于最终用户的简化语法,它允许用户在不更改应用逻辑的情况下定制自己的应用
re字符串正则匹配
difflib提供用于比较序列的类和函数
数据结构
模块名介绍
enum
collections实现了特定目标的容器,以提供 Python 标准内建容器dict , list , set , 和tuple 的替代选择
array
heapq
bisect
queue
struct
weakref创建弱引用,对象的弱引用不能保证对象存活,用于高速缓存等
copy深度拷贝,浅拷贝
pprint模块提供了更加复杂的打印控制,其输出的内置对象和用户自定义对象能够被解释器直接读取。当
算法
模块名介绍
functools高阶函数和可调用对象上的操作,提供了一些操作/优化函数的工具
itertools提供的生成迭代器的函数,相当高效且节省内存
operator标准运算符替代函数
contextlib
日期和时间
模块名介绍
time
datetime为日期和时间处理同时提供了简单和复杂的方法
calendar
数学运算:
模块名介绍
decimal十进制定点和浮点运算
fraction分数计算
random提供了生成随机数的工具
math为浮点运算提供了对底层C函数库的访问
statistics
文件系统
模块名介绍
os.path主要用于获取文件的属性
pathlib纯路径对象提供了不实际访问文件系统的路径处理操作
glob用于从目录通配符搜索中生成文件列表
fnmatch
linecache
tempfile
shutil
filecmp
mmap
codecs
io提供了 Python 用于处理各种 I/O(流) 类型的主要工具
数据持久存储与交换
模块名介绍
pickle实现了用于序列化和反序列化Python对象结构的二进制协议。
shelve
dbm
sqlite3
xml
csvCSV(字符分隔值) 文件读写
数据压缩与归档
模块名介绍
zlib可以压缩解押字符串
gzip
bz2
tarfile
zipfile提供了创建、读取、写入、添加及列出 ZIP 文件的工 具
加密
模块名介绍
hashlib提供了常见的摘要算法,如MD5,SHA1等等
hmac
并发编程
模块名介绍
suprocess
signal
threading创建并操作线程
multiprocessing创建并操作进程
asyncio
consurrent
网络
模块名介绍
socket套接字编程接口
http
email
应用模块构建
模块名介绍
argparse
getopt
readline
getpass便携式密码输入工具
cmd
shlex
configparser
logging写日志
fileinput
atexit
sched
国际化
模块名介绍
gettext
locale处理与特定地域文化相关的数据格式
开发工具
模块名介绍
pydoc
doctest提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试
unittest
trace
traceback
cgitb
pdb
profile
pstats
timeit可以用于测量代码片段执行时间
tabnanny
compileall
pyclbr
venv
ensurepip
运行时
模块名介绍
site
sys负责程序与python解释器的交互,提供了一系列的函数和变量
osos模块提供了不少与操作系统相关联的函数
platform
resource
gc垃圾收集器,内存管理
sysconfig
语言工具
模块名介绍
warnings发出警告,或者忽略它或引发异常
abc
dis
inspect
模块和包
模块名介绍
importlib
pkgutil
zipimport
参考文档

https://www.cnblogs.com/songlee/p/5738110.html
https://www.runoob.com/python3/python3-stdlib.html
https://blog.csdn.net/xiemanR/article/details/83958484

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值