前言

最近在官网发现了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参数:

  1. 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的),bytearray会使用str.encode()方法将string转变为bytes
  2. 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。
  3. 如果是一个遵循 缓冲区接口的对象,该对象的只读缓冲区将被用来初始化字节数组。
  4. 如果是一个 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