91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用 Python 3.7 的特性來切片無限生成器

發布時間:2021-06-15 15:00:13 來源:億速云 閱讀:141 作者:chen 欄目:編程語言

本篇內容介紹了“利用 Python 3.7 的特性來切片無限生成器”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!



這是關于 Python 3.x 首發特性系列文章的第八篇。Python 3.7 于 2018 年首次發布,盡管它已經發布了幾年,但它引入的許多特性都未被充分利用,而且相當酷。下面是其中的三個。

注解推遲評估

在 Python 3.7 中,只要激活了正確的 __future__ 標志,注解在運行時就不會被評估:

from __future__ import annotations def another_brick(wall: List[Brick], brick: Brick) -> Education:    pass
another_brick.__annotations__
    {'wall': 'List[Brick]', 'brick': 'Brick', 'return': 'Education'}

它使遞歸類型(指向自己的類)和其他有趣的事情成為了可能。然而,這意味著如果你想做自己的類型分析,你需要明確地使用 ast

import astraw_type = another_brick.__annotations__['wall'][parsed_type] = ast.parse(raw_type).body
subscript = parsed_type.valuef"{subscript.value.id}[{subscript.slice.id}]"
    'List[Brick]'

itertools.islice 支持 index

Python 中的序列切片長期以來一直接受各種 類 int 對象(具有 __index__() 的對象)作為有效的切片部分。然而,直到 Python 3.7,itertools.islice,即核心 Python 中對無限生成器進行切片的唯一方法,才獲得了這種支持。

例如,現在可以用 numpy.short 大小的整數來切片無限生成器:

import numpyshort_1 = numpy.short(1)short_3 = numpy.short(3)short_1, type(short_1)
    (1, numpy.int16)
import itertoolslist(itertools.islice(itertools.count(), short_1, short_3))
    [1, 2]

functools.singledispatch() 注解注冊

如果你認為 singledispatch 已經很酷了,你錯了。現在可以根據注解來注冊了:

import attrimport mathfrom functools import singledispatch @attr.s(auto_attribs=True, frozen=True)class Circle:    radius: float       @attr.s(auto_attribs=True, frozen=True)class Square:    side: float @singledispatchdef get_area(shape):    raise NotImplementedError("cannot calculate area for unknown shape",                              shape) @get_area.registerdef _get_area_square(shape: Square):    return shape.side ** 2 @get_area.registerdef _get_area_circle(shape: Circle):    return math.pi * (shape.radius ** 2) get_area(Circle(1)), get_area(Square(1))
    (3.141592653589793, 1)

“利用 Python 3.7 的特性來切片無限生成器”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平武县| 如东县| 龙川县| 威海市| 福泉市| 乐陵市| 招远市| 新巴尔虎右旗| 额尔古纳市| 万载县| 马关县| 广丰县| 三穗县| 承德市| 萍乡市| 丰都县| 西青区| 化德县| 双鸭山市| 扶绥县| 碌曲县| 昭苏县| 阿拉善左旗| 闽侯县| 广丰县| 永济市| 方山县| 天祝| 百色市| 太白县| 团风县| 平度市| 东乌珠穆沁旗| 靖州| 鱼台县| 大洼县| 顺义区| 宣汉县| 板桥市| 商水县| 思茅市|