容易被忽略的Python内置类型
答案揭晓:是的,因此,`bytearray`一般情况下并不常见,它主要为了可以实现原地修改bytes对象而出现,因为bytes和str一样是不可变对象,例如这样是非法的: ```python >>> b = '测试用例a'.encode >>> b[-1] = 98 # change 'a' -> 'b' Traceback : File "", line 1, in TypeError: 'bytes' object does not support item assignment ``` 而当我们把bytes的内容复制给`bytearray`时就可以进行原地修改了: ```python >>> array = bytearray >>> array[-1] = 98 >>> array.decode 测试用例b ``` `bytearray`对象没有字面常量,因此只能通过构造函数创建,它有着和bytes一样的方法,只是可变以及多了一些序列对象的特性。')`将已有的二进制数据复制进对象另外`memoryview`提供了直接访问对象内存的机制,只要目标对象支持[buffer protocol],例如`bytes`和`bytearray`。然而typing里仍然将其视为一种类型,所以也就罗列在此了。func是一个没有返回值的函数,参数列表没有做任何限制。
用户评论