gpt4 book ai didi

python - 简洁灵活的结构体定义

转载 作者:太空狗 更新时间:2023-10-29 21:26:42 27 4
gpt4 key购买 nike

我需要在 Python 2.7 中定义一堆灵活的结构(具有简单命名字段集合的对象,您可以稍后在其中添加新字段,但我不需要方法或继承或类似的东西)。 (上下文是我正在使用 struct.unpack_from 从二进制文件中读取内容,然后向结果中添加更多数据。)

一个类满足要求,例如

class Thing:
def __init__(self, foo, bar):
self.foo = foo
self.bar = bar

唯一的缺点就是每个字段名都要写三遍。 collections.namedtuple 提供了更精确的定义语法,但您不能向结果对象添加字段。

有没有一种方法可以使类具有至少一些 collections.namedtuple 的简洁性?

最佳答案

我发现有时有用的模式是

class Obj(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)

你可以像这样使用它

p = Obj(x=10, y=20)

关于python - 简洁灵活的结构体定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21832165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com