Рубрики
Без рубрики

Что нового в Python 3.9

Первоначально опубликовано в моем собственном блоге Python 3.9 Python 3.9, выпущен 5 октября, … Теги с Python.

Первоначально опубликовано самостоятельно блог

Python 3.9

Python 3.9 был выпущен 5 октября 2020 октября.

Добавьте операторы Union для Dict (Pep 584)

Это позволяет выполнять профсоюзную операцию на диктографии:

>>> a = {'x': 1, 'y': 2, 'z': 3}
>>> e = {'w': 'hello world'}
>>> a | e
{'x': 1, 'y': 2, 'z': 3, 'w': 'hello world'}

А также:

>>> x = a
>>> x
{'x': 1, 'y': 2, 'z': 3}
>>> x |= e
>>> x
{'x': 1, 'y': 2, 'z': 3, 'w': 'hello world'}

Тип намекающихся в стандартных коллекциях (PEP 585)

Эта функция позволяет подсказнять тип, используя стандартные коллекции, не полагаясь на Цветы модуль.

Ранее, чтобы ввести намек в список, который вы сделаете:

from typings import List

def somefunc(a: List[int]):
    pass

Теперь вы можете использовать стандартный тип:

def somefunc(a: list[int]):
    pass

Из этой версии импортируют Коллекции от Цветы устарели, и они будут удалены за 5 лет.

Гибкая функция и переменные аннотации (PEP 593)

Эта функция добавляет новый тип Аннотированный что позволяет нам расширять аннотации типа с метаданными.

Это позволяет типу T быть аннотированным с метаданными х вот так:

T1 = Annotated[T, x]

# E.g
UnsignedShort = Annotated[int, struct2.ctype('H')]
SignedChar = Annotated[int, struct2.ctype('b')]

# Multiple type annotations are supported
T2 = Annotated[int, ValueRange(3, 10), ctype("char")]

Затем метаданные могут использоваться для анализа статического или выполнения с помощью таких инструментов, как майка

Эта функция позволяет авторам представить новые типы данных с изящной деградацией, например, если MyPy не знает, как аналитировать x аннотацию, он должен просто игнорировать его метаданные и использовать аннотированный тип.

Расслабляющие грамматические ограничения на декораторы (PEP 614)

В настоящее время Python требуется, чтобы все декораторы состояли из пунктирного имени, дополнительно следующего одним вызовом. Этот PEP предлагает удалить эти ограничения и позволяя декораторам быть любым действительным выражением.

Выражение здесь означает «все, что верно в качестве теста IF, ELIF, а также в то время как блоки».

В основном это:

button_0 = buttons[0]

@button_0.clicked.connect
def spam():
    pass

Теперь может быть:

@buttons[0].clicked.connect
def spam():
    pass

Поддержка базы данных часовой зоны IANA в стандартной библиотеке

Эта функция добавляет новый модуль ZoneInfo Это обеспечивает реализацию часового пояса Contrete, поддерживающую базу данных часового пояса IANA.

Вы можете найти больше об этом модуле здесь: ZoneInfo.

Пример:

>>> from zoneinfo import ZoneInfo
>>> from datetime import datetime, timedelta

>>> dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
>>> print(dt)
2020-10-31 12:00:00-07:00

>>> dt.tzname()
'PDT'

Строковые методы для удаления префиксов и суффиксов

Добавляет два новых метода, RemovePrefix () и RemoSuffix () , к apis различных струнных объектов Python.

Оригинал: “https://dev.to/edgl/what-s-new-in-python-3-9-36bh”