如何使用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)

相关推荐

  • 怎么使用TFserving

    技术怎么使用TFserving这篇文章主要讲解了“怎么使用TFserving”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用TFserving”吧!1.什么是TFs

    攻略 2021年11月13日
  • 如何理解分布式系统下基于Redis的分布式锁

    技术如何理解分布式系统下基于Redis的分布式锁这篇文章主要介绍“如何理解分布式系统下基于Redis的分布式锁”,在日常操作中,相信很多人在如何理解分布式系统下基于Redis的分布式锁问题上存在疑惑,小编查阅了各式资料,

    攻略 2021年10月29日
  • 31种土豆家常做法,土豆有多少种做法

    技术31种土豆家常做法,土豆有多少种做法来给你说点家常的做法 131种土豆家常做法、最简单的做法就是酸辣土豆丝(土豆片)了。。。
    佐料有:干辣皮(切成段),葱(切成段),蒜(切成片),青椒(切成丝)
    首先把土豆切好,

    生活 2021年10月30日
  • 数据库tempdb已满(tempdb数据库空间不足)

    技术为什么无法为数据库 tempdb中的对象分配空间本篇文章为大家展示了为什么无法为数据库 tempdb中的对象分配空间,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。错误描述消息

    攻略 2021年12月14日
  • springsession和普通session区别(springsession配置sessionname)

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

    攻略 2021年12月23日
  • spark环境搭建

    技术spark环境搭建 spark环境搭建spark环境搭建
    spark下载地址:http://archive.apache.org/dist/spark/
    Scala下载地址:https://scal

    礼包 2021年11月9日