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的知识点上也非常简单,这里小编把它们放在同一篇中,大家可以一起学习。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试