国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python namedtuple中加入新字段

python namedtuple中加入新字段

namedtuple

头像

小妮浅浅

2021-01-12 18:27:384427浏览 · 0收藏 · 0评论

我们可以选择在列表中添加元素,也可以在字典中添加字段,在数据的补充和更新上都非常方便。有的小伙伴提出,我们可以在最近新学的namedtuple类中添加新字段吗?在回答这个问题,我们先来用代码进行测试才更有说服力。接下来就namedtuple在python中加入新字段后的运行问题,我们进行以下的尝试。


字典是可变的,因此我们可以根据需要添加任意数量的新键。相信我,这是一些很难发现的令人讨厌的错误点。那可以用什么代替呢?namedtuple!对,就是它!

将我们的函数转换为使用namedtuple:

from collections import namedtuple
...
Color = namedtuple("Color", "r g b alpha")
...
def convert_string_to_color(desc: str, alpha: float = 0.0):
    if desc == "green":
        return Color(r=50, g=205, b=50, alpha=alpha)
    elif desc == "blue":
        return Color(r=50, g=0, b=255, alpha=alpha)
    else:
        return Color(r=50, g=0, b=0, alpha=alpha)

与dict的情况一样,我们可以将值分配给单个变量并根据需要使用。无需记住顺序。而且,如果你使用的是诸如PyCharm和VSCode之类的IDE ,还可以自动提示补全。

color = convert_string_to_color(desc="blue", alpha=1.0)
...
has_alpha = color.alpha > 0.0
...
is_black = color.r == 0 and color.g == 0 and color.b == 0

最重要的是namedtuple是不可变的。如果团队中的另一位开发人员认为在运行时添加新字段是个好主意,则该程序将报错。

>>> blue = Color(r=0, g=0, b=255, alpha=1.0)
 
>>> blue.e = 0
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-13-8c7f9b29c633> in <module>
----> 1 blue.e = 0
 
AttributeError: 'Color' object has no attribute 'e'

 

通过以上的运行结果可以看出,在python namedtuple中新字段的操作是不可行的,小伙伴们使用的时候需要注意了,不然会产生报错。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

儿媳苏玥全文免费| 三个老师轮流给学生布置作业| 巨茎挺进李淑芬的体内视频| 王蒙多| 《慈母夜吟》完整版| 成品人和精品人的区别哪个好| 电视剧中国地| 超星阅读平台登录入口| 女生胸前两颗大大的包是什么| 《尼姑春心荡漾》大结局| 公交车被上高湖了还能坐吗小说 | 两男吮她的花蒂和奶水视频| 《酒店激战》动漫1-5集免费观..| 窝窝影院在线观看免费播放电视剧 | 青梅竹马是消防员第一部 | 麻豆传媒| 交换第一次| 教室停电 挺进她体内H| 妈妈醉酒后把我当爸爸电视剧| 天美麻花星空高清MV播放音乐| DO时不堪入耳的话的| 水仙二嫂| 妈妈装睡配合孩子阴阳调和| 四个人换着来免费观看第二季| 一路向西在线观看剧情电影| 学生妹高清版免费观看电视剧| 99久久国产精品久久99| 孙笑川| 日批| 窝窝影院在线观看免费播放电视剧 | 美国式禁忌| 姑父有力挺送小芳的背景故事| 恋爱之瘾台湾剧| 电视剧在线观看免费 | 《交换做爰》在线观看| 一线产区和二线产区的品牌定位| 美国灭火宝贝3| 黑色蕾丝女装大长腿| 我在开会他在下添好爽 | 开会也一直放里面老板的| 少女配狗播放视频