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

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

Python3.0新加入了什么特性

這篇文章主要講解了“ Python 3.0 新加入了什么特性”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“ Python 3.0 新加入了什么特性”吧!

創(chuàng)新互聯(lián)公司從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元潁州做網(wǎng)站,已為上家服務(wù),為潁州各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

僅限關(guān)鍵字參數(shù)

Python 3.0 首次引入了僅限關(guān)鍵字參數(shù)參數(shù)的概念。在這之前,不可能指定一個只通過關(guān)鍵字傳遞某些參數(shù)的 API。這在有許多參數(shù),其中一些參數(shù)可能是可選的函數(shù)中很有用。

請看一個特意設(shè)計的例子:

def show_arguments(base, extended=None, improved=None, augmented=None):    print("base is", base)    if extended is not None:        print("extended is", extended)    if improved is not None:        print("improved is", improved)    if augmented is not None:        print("augmented is", augmented)

當閱讀調(diào)用該函數(shù)的代碼時,有時很難理解發(fā)生了什么:

show_arguments("hello", "extra")     base is hello    extended is extra show_arguments("hello", None, "extra")     base is hello    improved is extra

雖然可以用關(guān)鍵字參數(shù)來調(diào)用這個函數(shù),但這明顯不是最好的方法。相反,你可以將這些參數(shù)標記為僅限關(guān)鍵字:

def show_arguments(base, *, extended=None, improved=None, augmented=None):    print("base is", base)    if extended is not None:        print("extended is", extended)    if improved is not None:        print("improved is", improved)    if augmented is not None:        print("augmented is", augmented)

現(xiàn)在,你不能用位置參數(shù)傳入額外的參數(shù):

show_arguments("hello", "extra")    ---------------------------------------------------------------------------     TypeError                                 Traceback (most recent call last)      in     ----> 1 show_arguments("hello", "extra")        TypeError: show_arguments() takes 1 positional argument but 2 were given

對該函數(shù)的有效調(diào)用更容易預(yù)測:

show_arguments("hello", improved="extra")    base is hello    improved is extra

nonlocal

有時,函數(shù)式編程的人根據(jù)編寫累加器的難易程度來判斷一種語言。累加器是一個函數(shù),當它被調(diào)用時,返回目前為止發(fā)給它的所有參數(shù)的總和。

在 3.0 之前,Python 的標準答案是:

class _Accumulator:    def __init__(self):        self._so_far = 0    def __call__(self, arg):        self._so_far += arg        return self._so_far def make_accumulator():    return _Accumulator()

雖然我承認有些啰嗦,但這確實有效:

acc = make_accumulator()print("1", acc(1))print("5", acc(5))print("3", acc(3))

這樣做的輸出結(jié)果將是:

1 15 63 9

在 Python 3.x 中,nonlocal 關(guān)鍵字可以用少得多的代碼實現(xiàn)同樣的行為。

def make_accumulator():    so_far = 0    def accumulate(arg):        nonlocal so_far        so_far += arg        return so_far    return accumulate

雖然累加器是人為的例子,但使用 nonlocal 關(guān)鍵字使內(nèi)部函數(shù)擁有具有狀態(tài)的的能力是一個強大的工具。

擴展析構(gòu)

想象一下,你有一個 CSV 文件,每一行由幾個元素組成:

  • 第一個元素是年份

  • 第二個元素是月

  • 其他元素是該月發(fā)表的全部文章數(shù),每天一個條目

請注意,最后一個元素是 文章總數(shù),而不是 每天發(fā)表的文章。例如,一行的開頭可以是:

2021,1,5,8,10

這意味著在 2021 年 1 月,第一天發(fā)表了 5 篇文章。第二天,又發(fā)表了三篇文章,使總數(shù)達到 8 篇。第三天,又發(fā)表了兩篇文章。

一個月可以有 28 天、30 天或 31 天。提取月份、日期和文章總數(shù)有多難?

在 3.0 之前的 Python 版本中,你可能會這樣寫:

year, month, total = row[0], row[1], row[-1]

這是正確的,但它掩蓋了格式。使用擴展析構(gòu),同樣可以這樣表達:

year, month, *rest, total = row

這意味著如果該格式改為前綴了一個描述,你可以把代碼改成:

_, year, month, *rest, total = row

而不需要在每個索引中添加 1。

感謝各位的閱讀,以上就是“ Python 3.0 新加入了什么特性”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對 Python 3.0 新加入了什么特性這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)站欄目:Python3.0新加入了什么特性
文章地址:http://weahome.cn/article/pehidj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部