python中namedtuple怎样加默认值?

python中namedtuple怎样加默认值?,第1张

python中namedtuple怎样加默认值?


我们知道很多类的使用上有相似的地方,虽然之前在字段上namedtuple是不能添加的,但是在默认值上和数据类一样,我们可以选择默认值进行添加。当然这需要一些代码上的修改,小伙伴们可以先去了解一下数据类的概念,然后再namedtuple的添加上就比较好理解了。下面我们就开始学习今天namedtuple加默认值的方法吧。


数据类可以具有可选值。要模仿的相同行为,namedtuple需要进行一些技巧修改 *** 作。事实证明,我们可以使用继承,如下例所示。

from collections import namedtuple
class Color(namedtuple("Color", "r g b alpha")):
    __slots__ = ()
    def __new__(cls, r, g, b, alpha=None):
        return super().__new__(cls, r, g, b, alpha)
>>> c = Color(r=0, g=0, b=0)
>>> c
Color(r=0, g=0, b=0, alpha=None)

拓展:将namedtuples序列化为JSON

有时你可能需要将储存namedtuple转为JSON。Python的字典可以通过json模块转换为JSON。那么我们可以使用_asdict方法将元组转换为字典,然后接下来就和字典一样了。例如:

>>> blue = Color(r=0, g=0, b=255, alpha=1.0)
>>> import json
>>> json.dumps(blue._asdict())
'{"r": 0, "g": 0, "b": 255, "alpha": 1.0}'


今天在namedtuple中添加默认值的方法就分享给大家了,同时namedtuple转为JSON的知识点上也非常简单,这里小编把它们放在同一篇中,大家可以一起学习。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/3013838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存