Python3 内置函数(一)
前言
最近在官网发现了Python文档,我以前居然都不知道,汗!!!分享下链接:链接。(还可选择中英文哦)
内置函数
abs(x):返回一个数的绝对值
>>> abs(2.345) 2.345 >>> abs(-2.345) 2.345
all(iterable):如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True
。
红色部分很重要如:
>>> all(()) True >>> all([]) True >>> all({}) True
在元素不为0、空、None、False外,都为True
>>> all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 False >>> all([0, 1,2, 3]) # 列表list,存在一个为0的元素 False >>> all([1,2,3,None]) False >>> all([1,2,3,False]) False
any(iterable):函数用于判断给定的可迭代参数 iterable 是否全部为 False
这里注意全部为False才返回False,也就是0、空、None、False。而all是有一个就返回False
>>> any(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 True >>> any([0, '', False]) # 列表list,元素全为0,'',false False >>> any([]) # 空列表 False >>> any(()) # 空元组 False
ascii(object):返回一个包含对象的可打印表示形式的字符串,但是使用 \x
、\u
和 \U
对 repr()返回的字符串中非 ASCII 编码的字符进行转义。
>>> ascii('abcdefg') "'abcdefg'" >>> ascii('abcdef0') "'abcdef0'"
bin(x):将一个整数转变为一个前缀为“0b”的二进制字符串
>>> bin(3) '0b11' >>> bin(4) '0b100'
class bool([x]):返回一个布尔值,True或者False。
bool类是int的子类,也使用0或1表示False和True
>>> bool() False >>> bool(0) False >>> bool(1) True
breakpoint(*args, **kws):默认进入pdb模式
>>> breakpoint() --Return-- > <stdin>(1)<module>()->None (Pdb)
breakpoint会调用sys.breakpointhook(),而sys.breakpointhook()会调用pdb.set_trace(),从而实现进入调试器,值得注意的是pdb.set_trace()并没有参数,
而如果breakpoint()是可带参数的,这就比较坑了。
def b(): breakpoint('pdb') 结果: breakpoint('pdb') TypeError: set_trace() takes 0 positional arguments but 1 was given
如果需传入参数需修改Python环境变量PYTHONBREAKPOINT,使用Python -J设置,不过Python并不建议这样做。所有我们只需进入pdb就可以了。
class bytearray([source[, ebcoding[,errors]]]):按规则返回一个新的bytes数组
包含三个可选参数,source、encoding、errors
如果没有跟参数,返回一个大小为0的bytes数组,
source参数:
- 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的),bytearray会使用str.encode()方法将string转变为bytes
- 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。
- 如果是一个遵循 缓冲区接口的对象,该对象的只读缓冲区将被用来初始化字节数组。
- 如果是一个 iterable 可迭代对象,它的元素的范围必须是
0 <= x < 256
的整数,它会被用作数组的初始内容
>>> bytearray() bytearray(b'') >>> bytearray('a') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: string argument without an encoding >>> bytearray('a', encoding='utf-8') bytearray(b'a') >>> bytearray(2) bytearray(b'\x00\x00') >>> bytearray([1,2,3]) bytearray(b'\x01\x02\x03')
>>> bytearray(b'Hi!')
bytearray(b'Hi!')
class bytes
([source[, encoding[, errors]]]):返回一个新的“bytes”对象
是一个不可变序列,包含范围为 0 <= x < 256
的,和bytearray()用法相同,不过返回值是b字符串
>>> bytes(9) b'\x00\x00\x00\x00\x00\x00\x00\x00\x00'
callable(object):如果参数 object 是可调用的就返回 Ture,否则返回 False
如果返回 True
,调用仍可能失败,但如果返回 False
,则调用 object 将肯定不会成功。 请注意类是可调用的(调用类将返回一个新的实例);如果实例所属的类有__call__()则它就是可调用的。
>>> callable(1) False >>> def a(): ... pass ... >>> callable(a) True
chr(i):返回 Unicode 码位为整数 i 的字符的字符串格式
- i -- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。
>>> chr(2) '\x02' >>> chr(96) '`' >>> chr(99) 'c'
@classmethod:把一个方法封装成类方法
class C: @classmethod def b(cls): print(1)
compile(source,filename,mode,flags=0,dont_inherit=False,optimize=-1):将source编译成代码或AST对象
代码对象可以被exec() 或eval()执行。source 可以是常规的字符串、字节字符串,或者 AST 对象。
- source -- 字符串或者AST(Abstract Syntax Trees)对象。。
- filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
- mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
- flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
- flags和dont_inherit是用来控制编译源码时的标志
filename 实参需要是代码读取的文件名;如果代码不需要从文件中读取,可以传入一些可辨识的值(经常会使用 '<string>'
)。
mode 实参指定了编译代码必须用的模式。如果 source 是语句序列,可以是 'exec'
;如果是单一表达式,可以是 'eval'
;如果是单个交互式语句,可以是 'single'
。(在最后一种情况下,如果表达式执行结果不是 None
将会被打印出来。)
>>>str = "for i in range(0,10): print(i)" >>> c = compile(str,'','exec') # 编译为字节代码对象 >>> c <code object <module> at 0x10141e0b0, file "", line 1> >>> exec(c) 0 1 2 3 4 5 6 7 8 9 >>> str = "3 * 4 + 5" >>> a = compile(str,'','eval') >>> eval(a) 17
class complex
([real[, imag]]):返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。
- real -- int, long, float或字符串;
- imag -- int, long, float;
>>> complex(2,3) (2+3j) >>> complex('4+6j') (4+6j)
delattr(object,name):如果对象允许,该函数将删除指定的属性。
- object -- 对象。
- name -- 必须是对象的属性
class C: x = 0 y = '' z = None def test(self): pass print(hasattr(C, 'x')) print(hasattr(C, 'y')) print(hasattr(C, 'z')) print(hasattr(C, 'test')) delattr(C, 'x') delattr(C, 'y') delattr(C, 'z') delattr(C, 'test') print(hasattr(C, 'x')) print(hasattr(C, 'y')) print(hasattr(C, 'z')) print(hasattr(C, 'test'))
输出:
True
True
True
True
False
False
False
False