Python 中的类 C 结构

有没有一种方法可以方便地在 Python 中定义类似 C 的结构?我厌倦了写这样的东西:

class MyStruct():
    def __init__(self, field1, field2, field3):
        self.field1 = field1
        self.field2 = field2
        self.field3 = field3
请先 登录 后评论

2 个回答

Mark Biek

字典怎么样?

类似这样的:

myStruct = {'field1': 'some val', 'field2': 'some val'}

然后你可以使用它来操作值:

print myStruct['field1']
myStruct['field2'] = 'some other values'

并且值不必是字符串。它们几乎可以是任何其他对象。

请先 登录 后评论
Vicent Marti
<块引用>

dF:那太酷了……我没有 知道我可以访问 使用字典的类。

马克:我希望我有的情况 这正是我想要一个元组的时候 但没有什么比 字典。

您可以使用字典访问类的字段,因为类的字段、其方法和所有属性都使用字典在内部存储(至少在 CPython 中)。

...这将我们引向您的第二条评论。相信 Python dicts 是“重的”是一个非常非 Pythonistic 的概念。阅读这样的评论会扼杀我的 Python Zen。这不好。

你看,当你声明一个类时,你实际上是在围绕字典创建一个非常复杂的包装器——所以,如果有的话,你会增加比使用简单字典更多的开销。顺便说一句,在任何情况下都是毫无意义的开销。如果您正在开发性能关键的应用程序,请使用 C 或其他东西。

请先 登录 后评论