我知道此 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 ]
,这显然在语法上是无效的。
答案 0 :(得分:2)
bytes()
不等于C#字节。在Python中没有C#字节的直接等效项。最接近的是普通int。我认为该C#类的最直接翻译是
class ClassA(object):
def __init__(self):
self.var1 = 0
bytes
对象是字节的不可变序列。如果您想要可变的字节序列,则bytearray
或普通的list
或array.array
array都是合适的。除非有特殊原因,否则我可能会选择列表,真的:
class ClassA(object):
def __init__(self):
self.var1 = []
请注意,bytearray
和bytes
代表 unsigned 字节的序列;它们的元素从0到255,而不是-128到127。array.array('b')
是有符号字节的序列。