Python2.7:将构造函数变量初始化为字节数组



我知道这个C#代码:

public class ClassA
{
public byte var1;
}

可以转换为以下Python代码:

class ClassA(object):
def __init__(self):
self.var1 = bytes() # or b''

但是,如果var1是一个字节数组,如下所示:

public byte[] var1;

通常,我会这样做:

[bytes(i) for i in myList]

但是在这种情况下,不存在像myList这样的变量来填补该位置,这给我留下了[bytes(i) for i in ]这显然在语法上是无效的。

与 Python 中的模拟 C# 类相关

bytes()

不等同于 C# 字节。Python 中没有直接等同于 C# 字节;最接近的是普通的 int。我认为该 C# 类最直接的翻译是

class ClassA(object):
def __init__(self):
self.var1 = 0

bytes对象是不可变的字节序列。如果你想要一个可变的字节序列,一个bytearray或一个普通的list是一个合适的,或者一个array.array数组。除非我有特定原因,否则我可能会选择该列表,真的:

class ClassA(object):
def __init__(self):
self.var1 = []

请注意,bytearraybytes表示无符号字节序列;它们的元素从 0 到 255,而不是从 -128 到 127。array.array('b')将是一系列有符号字节。

最新更新