1
我想这是最好的代码和注释说明:通过扩展创建缓冲区类的Python海峡
import struct
class binary_buffer(str):
def __init__(self, msg=""):
self = msg
def write_ubyte(self, ubyte):
self += struct.pack("=B", ubyte)
return len(self)
Output
>> bb = binary_buffer()
>> bb # Buffer starts out empty, as it should
''
>> bb.write_ubyte(200)
1 # We can see that we've successfully written one byte to the buffer
>> bb
'' # Huh? We just wrote something, but where has it gone?
我会说,在一般情况下,分配给“自我”是错误的。至少我不能拿出这个合法的用途。 –
@doomster:为什么呢?你会怎么做呢? – Peter
@TahitiPetey因为你只是将自己绑定到名字self,这通常是你当前的对象。要更改当前对象,请分配给* its *属性之一,或等效地调用其中一个方法。 – phihag