返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用attrs来告别Python中的样板
  • 577
分享到

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

2023-06-16 21:06:50 577人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

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

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

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

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

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

attrs

如果你已经写过一段时间的 Python,那么你可能习惯这样写代码:

class Book(object):     def __init__(self, isbn, name, author):        self.isbn = isbn        self.name = name        self.author = author

接着写一个 __repr__ 函数。否则,很难记录 Book 的实例:

def __repr__(self):    return f"Book({self.isbn}, {self.name}, {self.author})"

接下来你会写一个好看的 docstring 来记录期望的类型。但是你注意到你忘了添加 editionpublished_year 属性,所以你必须在五个地方修改它们。

如果你不必这么做如何?

@attr.s(auto_attribs=True)class Book(object):    isbn: str    name: str    author: str    published_year: int    edition: int

使用新的类型注释语法注释类型属性,attrs 会检测注释并创建一个类。

ISBN 有特定格式。如果我们想强行使用该格式怎么办?

@attr.s(auto_attribs=True)class Book(object):    isbn: str = attr.ib()    @isbn.validator    def pattern_match(self, attribute, value):        m = re.match(r"^(\d{3}-)\d{1,3}-\d{2,3}-\d{1,7}-\d$", value)        if not m:            raise ValueError("incorrect fORMat for isbn", value)    name: str     author: str    published_year: int    edition: int

attrs 库也对不可变式编程支持良好。将***行改成 @attr.s(auto_attribs=True, frozen=True) 意味着 Book 现在是不可变的:尝试修改一个属性将会引发一个异常。相反,比如,如果希望将发布日期向后一年,我们可以修改成 attr.evolve(old_book, published_year=old_book.published_year+1) 来得到一个新的实例。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网Python频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何使用attrs来告别Python中的样板

本文链接: https://lsjlt.com/news/285339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用attrs来告别Python中的样板
    如何使用attrs来告别Python中的样板,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在我们覆盖 7 个 PyPI 库的系列文章中了解更多解决 Python...
    99+
    2023-06-16
  • 如何使用JQuery来移除元素的样式
    JQuery是一个非常流行的JavaScript库,开发者们经常使用JQuery来操作HTML页面中的元素。在JQuery中,我们可以使用一些简单的方法来操作元素的样式,如添加样式、删除样式或编辑样式。本文将重点介绍如何使用JQuery来移...
    99+
    2023-05-14
  • 网站上如何使用Google DFP广告管理系统来刊登广告
    本篇内容主要讲解“网站上如何使用Google DFP广告管理系统来刊登广告”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网站上如何使用Google DFP广告管理系统来刊登广告”吧!许多的网站都...
    99+
    2023-06-10
  • 使用Python-pptx 告别繁琐的幻灯片制作
    目录Python自动化:python-pptx 批量生成幻灯片需求分析python-pptx 介绍python-pptx 安装Hello World! 示例需求实现Python自动化...
    99+
    2024-04-02
  • 如何使用python中的networkx来生成一个图
    目录python networkx来生成一个图networkx随机图生成总结python networkx来生成一个图 使用python提供的第三方的库networkx,networ...
    99+
    2022-12-16
    python networkx networkx生成一个图 python networkx生成图
  • 在Python中如何使用cx_Oracle来访问Oracle
    今天就跟大家聊聊有关在Python中如何使用cx_Oracle来访问Oracle,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Python中如果要...
    99+
    2024-04-02
  • C++ 函数模板中的类模板是如何使用的?
    C++ 函数模板中的类模板 C++ 函数模板可以感知类模板,并利用它们作为参数类型。这允许您创建通用函数,适用于各种数据类型和结构。 语法template<typename T&...
    99+
    2024-04-15
    c++ 函数模板 代码可读性
  • SpringBoot中如何使用Thymeleaf模板
    本文小编为大家详细介绍“SpringBoot中如何使用Thymeleaf模板”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot中如何使用Thymeleaf模板”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-06-30
  • 如何在Golang中使用模板
    Golang使用模板的步骤:1、用go get命令安装模板引擎;2、创建一个包含占位符的文本文件;3、使用Parse()方法解析模板;4、使用Execute()方法渲染模板;5、模板变量的解析;6、如果模板需要包含子模板,可以进行模板嵌套;...
    99+
    2023-12-12
    Golang
  • C++的模板如何使用
    这篇文章主要介绍“C++的模板如何使用”,在日常操作中,相信很多人在C++的模板如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++的模板如何使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!一....
    99+
    2023-07-02
  • Python中的NumPy:如何使用它来提高HTTP性能?
    随着互联网的发展,HTTP协议成为了网络通信的重要方式。但是,HTTP协议的性能一直是网络开发者和运维人员关注的重点。为了提高HTTP性能,Python中的NumPy是一个非常有用的工具。本文将介绍NumPy的基本概念和如何使用它来提高H...
    99+
    2023-06-04
    关键字 numy http
  • 如何在Linux中使用Python来优化存储?
    在Linux中使用Python来优化存储是一项重要的任务,因为存储通常是服务器或个人电脑上最紧缺的资源之一。Python是一种强大的编程语言,可以用来处理各种数据和文件,因此它是优化存储的理想选择。 本文将介绍如何使用Python来优化存储...
    99+
    2023-08-04
    存储 linux linux
  • C++中如何使用链栈模板
    本篇文章给大家分享的是有关C++中如何使用链栈模板,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++链栈模板声明template <class T&...
    99+
    2023-06-17
  • 如何在ASP.NET中使用Django模板?
    ASP.NET和Django都是非常流行的Web开发框架,二者各有优点。在ASP.NET中使用Django模板可以让我们充分利用Django模板的强大功能,加快开发速度,提高代码质量。在本文中,我们将介绍如何在ASP.NET中使用Djang...
    99+
    2023-09-28
    git npm django
  • C++ 中如何使用函数模板?
    c++++ 函数模板允许您创建可用于多种数据类型的函数,从而提高代码可重用性。语法为:template 函数名(参数列表),指定类型参数即可使用。实战案例包括在数据结构中使用函数模板,...
    99+
    2024-04-12
    c++ 函数模板
  • Python如何使用reportlab实现制作pdf报告
    这篇文章主要讲解了“Python如何使用reportlab实现制作pdf报告”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何使用reportlab实现制作pdf报告”吧!rep...
    99+
    2023-07-04
  • python如何基于OpenCV模板匹配识别图片中的数字
    小编给大家分享一下python如何基于OpenCV模板匹配识别图片中的数字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!程序目标单个数字模板:(这些单个模板是我自...
    99+
    2023-06-14
  • 如何在Python教程中使用git来load你的代码?
    在Python教程中,使用Git来管理代码和版本控制是非常重要的技能。在这篇文章中,我们将学习如何使用Git来load你的代码,并在Python项目中使用它。 Git是一个版本控制系统,可以跟踪你的代码更改并帮助你管理代码库。它可以帮助你在...
    99+
    2023-06-26
    教程 load git
  • 如何在Python中使用NumPy来创建Unix脚本?
    Python是一种功能强大的编程语言,它拥有许多优秀的库和工具来提高开发者的效率。其中,NumPy是一个非常重要的库,它提供了许多高级的数学和科学计算功能,使得开发者可以更加轻松地进行数据分析和处理。同时,NumPy也可以用来创建Unix...
    99+
    2023-06-16
    numy shell unix
  • 如何在 Python 中使用 numpy 来处理 API 数据?
    Python 是一种流行的编程语言,广泛用于数据科学、机器学习等领域。而 numpy 是 Python 中处理数值数据的核心库之一,它提供了高效的数组操作和数学函数,使得处理大规模数据变得更加容易。在本文中,我们将介绍如何使用 numpy...
    99+
    2023-09-26
    numy api leetcode
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作