如何使用attrs来告别Python中的样板

技术如何使用attrs来告别Python中的样板如何使用attrs来告别Python中的样板,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在

Python中如何使用attrs告别模板,很多新手都不清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

在我们涵盖7个PyPI库的系列文章中,了解更多关于解决Python问题的信息。

Python是当今最流行的编程语言之一,因为它是开源的,用途广泛(如Web编程、商业应用、游戏、科学编程等)。),并且它有一个充满活力和专注的社区来支持它。这个社区是我们在Python包索引(PyPI)中提供如此庞大多样的软件包来扩展和改进Python的原因。并解决不可避免的问题。

在本系列中,我们将介绍七个PyPI库,它们可以帮助您解决常见的Python问题。今天,我们将学习attrs,这是一个Python包,可以帮助您快速编写简洁正确的代码。

00-1010如果您已经编写Python有一段时间了,您可能已经习惯于这样编写代码:

class book(object): def _ _ init _ _(self,ISBN,姓名,作者):self。ISBN=ISBN自身。name=nameelf。author=author然后编写一个__repr__ _函数。否则,很难记录Book的实例:

DEF _ _ REPR _ _(自我):返回一本书({自我。ISBN},{self。姓名},{自我。下一步,您将编写一个漂亮的文档字符串来记录预期的类型。但是你注意到忘记添加edition和published_year属性了,所以必须在五个地方进行修改。

如果你不必这么做呢?

@ attr . s(auto _ attribs=true)class book(object): ISBN 3360 strname 3360 strauthor : str published _ year : int edition : int使用新的类型注释语法注释类型属性,attr将检测注释并创建一个类。

国际标准书号有特定的格式。如果我们想强制这种格式呢?

@attr.s(auto_attribs=true)classbook(object):isbn:str=attr.ib()@isbn.validatordefpattern_match(self,attribute,value):m=re.match(r'^(\ d { 3 }-)\ d { 1,3}-\ d {2,3}-\ d {1,7}-\ d $ ',值)if not m : raisevalueerror(' format for issbn不正确,值)name: strauthor 3330。将* * *行更改为@ attr.s (auto _ attribs=true,frozen=true)意味着Book现在是不可变的:尝试修改属性将引发异常。相反,例如,如果我们想将发布日期设置为一年后,我们可以将其修改为attr.evolve (old _ book,published _ year=old _ book . published _ year 1)以获得一个新实例。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/50253.html

(0)

相关推荐

  • Android自定义View实现体重表盘的方法是什么

    技术Android自定义View实现体重表盘的方法是什么本篇内容介绍了“Android自定义View实现体重表盘的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如

    攻略 2021年11月1日
  • MySQL varchar类型最大值是多少

    技术MySQL varchar类型最大值是多少本篇内容介绍了“MySQL varchar类型最大值是多少”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希

    攻略 2021年12月4日
  • 有志不在年高无志空长百岁,无志空活百岁上一句是什么

    技术有志不在年高无志空长百岁,无志空活百岁上一句是什么有志不在年高有志不在年高无志空长百岁,无志空活百岁出自《甘罗十二为使臣》 【解释】 意思是指只要有远大志向,就算年纪小也没事,一个没有远大志向的人,即便活到很大的岁数

    生活 2021年10月27日
  • 千层榴莲蛋糕,榴莲千层蛋糕的做法君之的有吗

    技术千层榴莲蛋糕,榴莲千层蛋糕的做法君之的有吗材料250g 奶油 , 7 蛋黄 , 3 蛋白 , 1tsp ovalette蛋糕乳化剂 , 200g 幼糖,300g 面粉 , 1/2tsp 苏打粉 , 200g 榴莲肉做

    生活 2021年10月26日
  • iOS如何实现多代理模式--OC

    技术iOS如何实现多代理模式--OC iOS如何实现多代理模式--OCOC 如何实现多代理模式
    为什么要使用多代理模式
    标题虽然是如何实现多代理模式,但是知道为什么需要实现多代理模式同样重要。
    众所周知

    礼包 2021年12月7日
  • Python中Gevent怎么用

    技术Python中Gevent怎么用这篇文章主要为大家展示了“Python中Gevent怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python中Gevent怎么用”

    攻略 2021年10月27日