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

时间:2018-09-18 17:12:09

标签: c# python python-2.7

我知道此 C#代码:

public class ClassA
{
    public byte var1;
}

可以转换为以下 Python 代码:

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

但是如果var1而是一个 byte数组,如下所示:

public byte[] var1;

通常,我会这样做:

[bytes(i) for i in myList]

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

Mimic C# classes in Python

有关

1 个答案:

答案 0 :(得分:2)

bytes()不等于C#字节。在Python中没有C#字节的直接等效项。最接近的是普通int。我认为该C#类的最直接翻译是

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

bytes对象是字节的不可变序列。如果您想要可变的字节序列,则bytearray或普通的listarray.array array都是合适的。除非有特殊原因,否则我可能会选择列表,真的:

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

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