您的当前位置:首页正文

python 内置函数Built-in Functions

来源:要发发知识网

尝试将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().__init__()
Built-in Functions