Позиционные параметры
В примерах из прошлых постов для определения атрибутов прописывалось их имя: case Person(name="Tom", age=37). Но если используется куча шаблонов, и в каждом необходимо связать атрибуты объекта с некоторыми значениями или переменными, то постоянное упоминание атрибутов можно несколько раздуть код. Но Python также позволяет использовать позиционные параметры, смотрим код:
Обратите внимание в классе Person на вызов функции. Благодаря этому Python будет знать, что при указании атрибутов атрибут name будет идти первым, а атрибут age - вторым.
И таким образом, в шаблонов не нужно указывать имя атрибута: case Person("Tom", 37) - Python сам сопоставит атрибуты и значения/переменные на основе их позиции.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #классы
В примерах из прошлых постов для определения атрибутов прописывалось их имя: case Person(name="Tom", age=37). Но если используется куча шаблонов, и в каждом необходимо связать атрибуты объекта с некоторыми значениями или переменными, то постоянное упоминание атрибутов можно несколько раздуть код. Но Python также позволяет использовать позиционные параметры, смотрим код:
Обратите внимание в классе Person на вызов функции. Благодаря этому Python будет знать, что при указании атрибутов атрибут name будет идти первым, а атрибут age - вторым.
И таким образом, в шаблонов не нужно указывать имя атрибута: case Person("Tom", 37) - Python сам сопоставит атрибуты и значения/переменные на основе их позиции.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #классы
guards или ограничения шаблонов
Guard или ограничения шаблонов позволяют установить дополнительные условия, которым должно соответсвовать выражение. Ограничение задается сразу после шаблона с помощью ключевого слова if, после которого идет условие ограничения:
Здесь первый шаблон соответствует любому объекту Person, у которого атрибут age меньше 18. Собственно часть if age < 18 и представляет ограничение. Соответственно, если у пользователя возраст меньше 18, то будет выводьтся одно сообщение, если больше 18, то другое.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #guards #шаблоны
Guard или ограничения шаблонов позволяют установить дополнительные условия, которым должно соответсвовать выражение. Ограничение задается сразу после шаблона с помощью ключевого слова if, после которого идет условие ограничения:
Здесь первый шаблон соответствует любому объекту Person, у которого атрибут age меньше 18. Собственно часть if age < 18 и представляет ограничение. Соответственно, если у пользователя возраст меньше 18, то будет выводьтся одно сообщение, если больше 18, то другое.
🐍 Укус питона // 💬 Чат // #теория #pattern_matching #guards #шаблоны