bytearray() 和 bytes()
字节数组和字节,3个参数:source,encoding,errors
当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组
当3个参数都不传的时候,返回长度为0的字节数组
当source参数为整数时,返回这个整数所指定长度的空字节数组
当source参数为实现了buffer接口的object对象时,那么将使用只读方式将字节读取到字节数组后返回
当source参数是一个可迭代对象,那么这个迭代对象的元素都必须符合0 <= x < 256,以便可以初始化到数组里
>>> bytearray("abc","utf-8")
bytearray(b'abc')
>>> bytearray(1)
bytearray(b'\x00')
>>> bytearray([1,2,3])
bytearray(b'\x01\x02\x03')
>>> bytes("SD","utf-8")
b'SD'
>>> bytes([1,2,3])
b'\x01\x02\x03'
>>> bytes(3)
b'\x00\x00\x00'
callable(object)
判断一个对象是否是可调用的
>>> callable(1)
False
>>> callable(1.2)
False
>>> callable([1,2,3])
False
>>> callable(bool)
True
chr(i) 和 ord()
chr(i)返回unicode值为i对应的字符
ord()刚好相反, 返回单个字符的unicode值
>>> chr(444)
'Ƽ'
>>> chr(5)
'\x05'
>>> chr(97)
'a'
>>> ord("a")
97
>>> ord("1")
49
@classmethod 和 @staticmethod
在class中大多数的方法是实例方法,即将实例作为第一个参数传递给方法
@classmethod和@staticmethod装饰的方法在使用上只有一点区别
@classmethod装饰的方法第一个参数必须是一个类(通常为cls),而@staticmethod装饰的方法则按业务需求设置参数,也可以根本没有参数