尝试将python的内置函数进行解释及分类
内置函数分类 | ||
---|---|---|
反射操作 | 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性 | |
__import__() |
导入模块 |
__import__('sys').path |
isinstance() |
判断对象是否是某个类的实例 |
isinstance('abc', str) = True |
issubclass() |
判断对象是否是某个类的子类的实例 |
issubclass(str, str) = True |
hasattr() |
判断对象是否含有某个属性 |
hasattr(str, 'join') # ''.join([1, 2]) |
getattr() |
获取对象的某个属性 |
getattr(str, 'join') |
setattr() |
设置对象的某个属性 |
setattr(p, 'name', 'xiaoming') |
delattr() |
删除对象的某个属性 |
delattr(p, 'name') |
callable() |
检测对象是否可被调用 |
callable(str) = True |
变量操作 | ||
globals() |
回当前作用域内的全局变量和其值组成的字典 |
globals() |
locals() |
返回当前作用域内的局部变量和其值组成的字典 |
locals() |
交互操作 | ||
print() |
向标准输出对象打印输出 |
print('123') |
input() |
读取用户输入值 |
p = input() |
文件操作 | ||
open() |
打开某个文件 |
with open('/test.txt', 'rb') as f |
编译执行 | ||
compile() |
将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值 |
compile('1+2', '', 'eval') |
eval() |
执行动态表达式求值 |
eval('1+2+3+4') = 10 |
exec() |
执行动态语句块 |
exec('p=2+3') print(p) # 5 |
repr() |
返回一个对象的字符串表现形式(给解释器) |
repr(str) |
装饰器 | ||
property() |
标示属性的装饰器 |
@property |
classmethod() |
类方法的装饰器 |
@classmethod |
staticmethod() |
静态方法的装饰器 |
@staticmethod |
序列操作 | ||
all() |
判断对象内部所有元素是否全部不为False |
all([1, 2, 3, 0]) = False |
any() |
判断对象内部是否有元素不为False |
any([0, 0, 0, 0, 1]) = True |
filter() |
用一个函数作用于可迭代对象的每一个元素,筛选出一个新的迭代器 |
list(filter(lambda p:p <3, [1, 2, 3])) = [1, 2] |
next() |
返回可迭代对象的下一个元素,没有会报错 |
next(iter([1, 2, 3])) = 1 |
map() |
用一个函数作用于可迭代对象的每一个元素,生成一个新的迭代器 |
list(map(lambda p:p**2, [1, 2, 3])) = [1, 4, 9] |
sorted() |
数组排序,可传入一个key函数作为判断 |
sorted(['2', '1', '3'], key=int, reverse=True) = ['3', '2', '1'] |
reversed() |
倒序 |
list(reversed(['2', '1', '3'])) = ['3', '1', '2'] |
zip() |
元组操作 |
list(zip([1, 2, 3], [1, 2, 3])) = [(1, 1), (2, 2), (3, 3)] |
对象操作 | ||
help() |
获取对象的帮助信息 |
help(str) |
id() |
获取对象的唯一标识符 |
id('123') |
dir() |
返回对象的或者当前作用域内的属性列表 |
dir(str) |
hash() |
获取对象的哈希值 |
hash('123') |
vars() |
返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表 |
vars() |
ascii() |
返回对象的可打印表字符串表现方式 |
ascii('简书') = '\u7b80\u4e66' |
type() |
返回对象的类型,或者根据传入的参数创建一个新的类型 |
Person = type('Person', (), {'name':'python ~'}) p = Person() p.name |
len() |
获取对象的长度 |
len('123') = 3 |
format() |
格式化显示值 |
format(123, 'b') = 1111011 |
数值计算 | ||
abs() |
绝对值函数 |
abs(-1) = 1 |
divmod() |
除余函数 |
divmod(11,3) = 3(整除数),2(余数) |
pow() |
函数 |
pow(2, 3) = 2**3 = 8 |
max() |
最大值函数 |
max([(1, 2), (2, 3), (3, 1)], key=lambda p:p[1]) = (2,3) |
min() |
最小值函数 |
min([(1, 2), (2, 3), (3, 1)], key=lambda p:p[1]) = (3,1) |
sum() |
求和函数 |
sum([1, 2, 3]) = 6 |
round() |
四舍五入函数 |
round(1.12345, 3) = 1.123 # 第二个参数为位数约束 |
类型转换 | ||
bool() |
转换为bool |
bool('') = bool(0) = bool(False) = False |
bytearray() |
转换为字节数组 |
bytearray('字节', encoding='utf8') |
bytes() |
转换为不可变字节数组 |
bytes('字节', encoding='utf8') |
float() |
转换为float |
float(1) = 1.o |
int() |
字符串或者浮点数转换为int |
int(10.0) = int('10') = 10 |
hex() |
由其他进制转换为十六进制 |
hex(10) = oxa |
oct() |
由其他进制转换为八进制 |
oct(16) = 0o20 |
bin() |
由其他进制转换为二进制 |
bin(8) = 0b1000 |
complex() |
由其他进制或字符串转换为复数 |
complex('1+2j') = complex(1+2j) = (1+2j) |
chr() |
数字转换为unicode |
chr(48) = 0 |
ord() |
unicode字符串转换为数字 |
ord('0') = 48 |
str() |
创建一个新的str对象 |
str(123) = '123' |
list() |
创建一个新的list对象 |
list([1, 2, 3]) = [1, 2, 3] |
object() |
创建一个新的object对象 |
obj = object() |
tuple() |
创建一个新的tuple对象 |
tuple([1, 2, 3] = (1,2, 3) |
set() |
创建一个新的set对象 |
set(range(3)) = {0, 1, 2} |
memoryview() |
创建一个新的内存查看对象 |
memoryview(b'1234')[0] = 49 传入参数必须为byte-like类型,返回为unicode迭代器 |
dict() |
创建一个新的dict对象 |
dict({'0':0}) = {'0': 0} |
frozenset() |
创建一个新的不可变集合 |
frozenset([1, 2, 3]) = frozenset({1, 2, 3}) |
enumerate() |
创建一个枚举对象 |
enumerate([1, 2, 3, 4]) 迭代器返回为(index, item) |
range() |
创建一个新的range对象 |
range(start, stop, step) |
iter() |
创建一个新的可迭代对象 |
iter([1, 2, 3]).__next__() = 1 |
slice() |
创建一个新的切片对象 |
list[slice(start, stop, step)] |
super() |
创建一个新的子类和父类关系的代理对象 |
super().__init__() |
网友评论