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

Новые функции в Python 3.8

Не давно появился новый Python 3.8. Он принес два очень полезных функция и один синтаксис CO … Теги с Python.

Не давно появился новый Python 3.8. Он привел две очень полезные функции и одно синтаксическое строительство, которое определенно появится в будущих библиотеках.

Лучшие F-струны

Удивительный Python F-струна стал еще лучше. F-string Был введен в Python 3.6, и это лучший подход форматирования строк, который я когда-либо видел.

Синтаксис прост. Например, у вас есть переменная Имя И хотел бы распечатать это – вы можете написать Печать (f'hello {name} ') И что все. Не нужно вызывать любые дополнительные функции (например, формат ()). По сути, вы можете использовать любую переменную доступную в текущем объеме. Более того, вы можете извлечь элементы из диктома или списка с помощью уже известного синтаксиса Печать (Hello {человек [«Имя»]} ') .

В Python 3.8 становится намного проще использовать F-струны для отладки. Теперь вы также можете сделать следующее: Печать (f '{name =}') будет выводить Имя = Эндрю Отказ Это просто добавляет имя переменной и его значение. Более того, вы все равно можете использовать форматирование F-String:

    >>> from math import pi
    >>> print(f'{pi=:.3f}')
    pi=3.142
    >>> print(f'{pi=:.5f}')
    pi=3.14159

Новое выражение назначения

Время от времени все сталкиваются с этим случаем, когда вам нужно позвонить в функцию в состоянии IF-Sux, а затем использовать значение, которое он возвращает, если Условие верно. Большую часть времени код выглядит так:

    valid_elements = get_valid_elements(elements)
    if len(valid_elements):
        process(valid_elements)

Python 3.8 имеет новый синтаксический сахар, чтобы упростить его и сделать его еще более читаемым. Новый оператор известен как «Оператор Walrus». Он присваивает вычисленное значение для переменной и одновременно возвращает его так, как это был вызов функции. Итак, мы можем переписать код выше следующим образом:

    if len(valid_elements := get_valid_elements(elements)):
        process(valid_elements)

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

    while user_input := input()):
        process(user_input)

    # instead of
    user_input = input()
    while user_input:
        process(user_input)
        user_input = input()

Новый синтаксис для аргументов только на позиции

Следующая функция не так применима в ежедневном программировании, но она определенно используется в библиотеках. Разработчики библиотек всегда пытаются защитить пользователя от неправильного использования функций и их параметров. Поскольку Python является динамически типичным языком, становится довольно простым, чтобы пройти неправильное значение неверным параметрам. Существует несколько методов, которые помогают пользователю не сохранять пользователя от этого, например, именованные параметры (например, разблокировка (KEY = «42») ). Новый также является целью защиты пользователя от неправильного использования параметров функции.

    def f(a, b, /, c, d, *, e, f):
        print(a, b, c, d, e, f)

/ означает, что все предыдущие параметры (A и B) должны быть только позиционными. * означает, что все следующие параметры (E и F) должны быть только ключевые слова. Итак, будь готов увидеть это в коде.

    >>> f(1, 2, 3, 4, 5, f=6) # is invalid as 'e' should have keyword
    >>> f(1, b=2, c=3, d=4, e=5, f=6) # is also invalid as 'b' should be without keyword
    >>> f(1, 2, 3, d=4, e=5, f=6) # is valid

Там намного больше изменений в Python 3.8 вы можете найти полный список в Официальная статья Отказ

Оригинал: “https://dev.to/alberand_/new-features-in-python-3-8-3544”