python中namedtuple怎样加默认值?

872次阅读
没有评论
python中namedtuple怎样加默认值?

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免费测试

相关文章:

版权声明:wuyou2021-06-30发表,共计836字。
新手QQ群:570568346,欢迎进群讨论 Python51学习