Первоначально опубликовано самостоятельно блог
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”