真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用attrs來告別Python中的樣板

如何使用attrs來告別Python中的樣板,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到遼源網(wǎng)站設(shè)計(jì)與遼源網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋遼源地區(qū)。

在我們覆蓋 7 個(gè) PyPI 庫的系列文章中了解更多解決 Python 問題的信息。

Python是當(dāng)今使用最多流行的編程語言之一,因?yàn)椋核情_源的,它具有廣泛的用途(例如 Web 編程、業(yè)務(wù)應(yīng)用、游戲、科學(xué)編程等等),它有一個(gè)充滿活力和專注的社區(qū)支持它。這個(gè)社區(qū)是我們在 Python Package Index(PyPI)中提供如此龐大、多樣化的軟件包的原因,用以擴(kuò)展和改進(jìn) Python。并解決不可避免的問題。

在本系列中,我們將介紹七個(gè)可以幫助你解決常見 Python 問題的 PyPI 庫。今天,我們將研究 attrs,這是一個(gè)幫助你快速編寫簡潔、正確的代碼的 Python 包。

attrs

如果你已經(jīng)寫過一段時(shí)間的 Python,那么你可能習(xí)慣這樣寫代碼:

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

接著寫一個(gè) __repr__ 函數(shù)。否則,很難記錄 Book 的實(shí)例:

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

接下來你會寫一個(gè)好看的 docstring 來記錄期望的類型。但是你注意到你忘了添加 editionpublished_year 屬性,所以你必須在五個(gè)地方修改它們。

如果你不必這么做如何?

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

使用新的類型注釋語法注釋類型屬性,attrs 會檢測注釋并創(chuàng)建一個(gè)類。

ISBN 有特定格式。如果我們想強(qiáng)行使用該格式怎么辦?

@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 現(xiàn)在是不可變的:嘗試修改一個(gè)屬性將會引發(fā)一個(gè)異常。相反,比如,如果希望將發(fā)布日期向后一年,我們可以修改成 attr.evolve(old_book, published_year=old_book.published_year+1) 來得到一個(gè)新的實(shí)例。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


網(wǎng)站名稱:如何使用attrs來告別Python中的樣板
當(dāng)前鏈接:http://weahome.cn/article/pjoodj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部