super()
super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.
Вызов
Функция принимает аргументы
Она часто используется в методах
Использование
🔗 Python tricks
super() — это встроенная функция, которая используется для вызова родительского класса. Она позволяет вызывать методы родительского класса из дочернего класса.
Это полезно при наследовании, чтобы использовать функционал базового класса.
Вызов
super()
ищет следующий класс в цепочке наследования и вызывает этот метод.Функция принимает аргументы
self
и cls
для связывания с текущим объектом и классом.Она часто используется в методах
init
дочерних классов, чтобы вызвать init
родителя и инициализировать его.Использование
super()
позволяет избежать неявного упоминания имени базового класса в коде.🔗 Python tricks
Функция dir()
Функция dir() используется для получения списка атрибутов и методов объекта.
Она принимает объект в качестве аргумента и возвращает список его атрибутов и методов в виде строк.
Для модулей
С помощью
Без аргументов
🔗 Python tricks
Функция dir() используется для получения списка атрибутов и методов объекта.
Она принимает объект в качестве аргумента и возвращает список его атрибутов и методов в виде строк.
Для модулей
dir()
возвращает список определенных в нем имен. Для классов возвращаются его атрибуты, методы и внутренние функции.С помощью
dir()
можно получить список ключевых слов языка, передав builtin
или builtins
в качестве аргумента.Без аргументов
dir()
возвращает список имен, определенных в текущей области видимости.🔗 Python tricks
Особые методы сравнения множеств (set, frozenset)
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
🔗 Python tricks
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
🔗 Python tricks
Метод .clear()
.clear() — метод изменяемых коллекций (список, словарь, множество), удаляющий из коллекции все элементы и превращающий её в пустую коллекцию.
🔗 Python tricks
.clear() — метод изменяемых коллекций (список, словарь, множество), удаляющий из коллекции все элементы и превращающий её в пустую коллекцию.
🔗 Python tricks
Гайд по магическим методам сравнения
В Питоне уйма магических методов, созданных для определения интуитивного сравнения между объектами используя операторы, а не неуклюжие методы. Вот список этих методов и что они делают:
1.
2.
Определяет поведение оператора равенства,
3.
4.
5.
6.
7.
🔗 Python tricks
В Питоне уйма магических методов, созданных для определения интуитивного сравнения между объектами используя операторы, а не неуклюжие методы. Вот список этих методов и что они делают:
1.
__cmp__(self, other)
Самый базовый из методов сравнения. Он, в действительности, определяет поведение для всех операторов сравнения (>, ==, !=), но не всегда так, как вам это нужно. __cmp__
должен вернуть отрицательное число, если self < other
, ноль, если self == other
, и положительное число в случае self > other
.2.
__eq__(self, other
)Определяет поведение оператора равенства,
==
.3.
__ne__(self, other)
Определяет поведение оператора неравенства, !=
.4.
__lt__(self, other)
Определяет поведение оператора меньше, <
.5.
__gt__(self, other)
Определяет поведение оператора больше, >
.6.
__le__(self, other)
Определяет поведение оператора меньше или равно, <=
.7.
__ge__(self, other)
Определяет поведение оператора больше или равно, >=
.🔗 Python tricks
Метод capitalize()
Метод
Заметьте, что метод
🔗 Python tricks
Метод
capitalize()
используется для преобразования первой буквы строки в заглавную (прописную) букву, а все остальные буквы в строке делаются строчными. Как видно из примера, метод capitalize()
изменяет только первую букву строки на заглавную, оставляя все остальные буквы неизменными.Заметьте, что метод
capitalize()
не изменяет оригинальную строку, а создает новую строку с изменениями. Если вы хотите изменить исходную строку, вы должны присвоить результат обратно этой переменной.🔗 Python tricks
PyBrain
PyBrain — это модульная библиотека машинного обучения для Python.
Ее цель — предложить гибкие, простые в использовании, но все же мощные алгоритмы для задач машинного обучения и разнообразные предопределенные среды для тестирования и сравнения ваших алгоритмов.
В этом примере мы создаем набор данных для классификации с двумя входными и тремя выходными значениями и добавляем данные в набор данных. Затем данные разделяются на обучающую и тестовую выборки и преобразуются для использования с PyBrain.
Далее создается нейронная сеть с двумя входными узлами, тремя скрытыми узлами и тремя выходными узлами и тренер для обучения сети. Сеть обучается в течение 100 эпох и выводится результат на обучающей и тестовой выборках.
🔗 Python tricks
PyBrain — это модульная библиотека машинного обучения для Python.
Ее цель — предложить гибкие, простые в использовании, но все же мощные алгоритмы для задач машинного обучения и разнообразные предопределенные среды для тестирования и сравнения ваших алгоритмов.
В этом примере мы создаем набор данных для классификации с двумя входными и тремя выходными значениями и добавляем данные в набор данных. Затем данные разделяются на обучающую и тестовую выборки и преобразуются для использования с PyBrain.
Далее создается нейронная сеть с двумя входными узлами, тремя скрытыми узлами и тремя выходными узлами и тренер для обучения сети. Сеть обучается в течение 100 эпох и выводится результат на обучающей и тестовой выборках.
🔗 Python tricks
Конвертация одного типа коллекции в другой
В зависимости от стоящих задач, один тип коллекции можно конвертировать в другой тип коллекции. Для этого, как правило достаточно передать одну коллекцию в функцию создания другой.
🔗 Python tricks
В зависимости от стоящих задач, один тип коллекции можно конвертировать в другой тип коллекции. Для этого, как правило достаточно передать одну коллекцию в функцию создания другой.
🔗 Python tricks
PySnooper
PySnooper — это библиотека для Python, которая позволяет вам добавлять отладочные точки в ваш код для отслеживания значений переменных и выполнения дополнительных действий при выполнении программы. Это полезный инструмент для отладки, поскольку он позволяет вам легко исследовать, какие значения принимают переменные в определенный момент времени и какой код выполняется.
При выполнении функции из примера PySnooper будет записывать значения переменных и их изменения во время выполнения функции в стандартный вывод, что облегчает отладку. Вы также можете настроить PySnooper для записи данных в файлы и выполнять другие действия при отладке.
🔗 Python tricks
PySnooper — это библиотека для Python, которая позволяет вам добавлять отладочные точки в ваш код для отслеживания значений переменных и выполнения дополнительных действий при выполнении программы. Это полезный инструмент для отладки, поскольку он позволяет вам легко исследовать, какие значения принимают переменные в определенный момент времени и какой код выполняется.
При выполнении функции из примера PySnooper будет записывать значения переменных и их изменения во время выполнения функции в стандартный вывод, что облегчает отладку. Вы также можете настроить PySnooper для записи данных в файлы и выполнять другие действия при отладке.
🔗 Python tricks
Списковые включения
Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.
Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
🔗 Python tricks
Возможно где-то до этого ты уже мог слышать понятие «list comprehensions». Это такой способ уместить цикл for, блок if и присваивание в одну строку.
Начнем с простейшего примера. Допустим, нам снова надо возвести в квадрат все элементы списка.
Да, определенно этот код короче предыдущего, но всё еще некрасив. С первого взгляда сложно сказать, что делает функция map (она принимает в качестве аргументов функцию и список и применяет функцию к каждому элементу списка). К тому же мы вынуждены определять функцию, это выглядит довольно беспорядочно.
Но, оказывается, можно писать проще и понятнее
🔗 Python tricks
Обмен значениями при помощи кортежей
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
🔗 Python tricks
Один из популярных трюков в Python – обмен значениями без создания временной переменной. Способ применим для любого числа переменных.
В правой части инструкции присваивания последовательностей допускается указывать любые итерируемые объекты. Главное, чтобы число элементов слева равнялось числу элементов справа. Такое присваивание применяется и для сложных вложенных конструкций.
🔗 Python tricks
Удаление дубликатов в списке
Среди регулярно используемых трюков в Python – преобразование списка во множество и обратно в список для удаления повторяющихся элементов списка
Но множества – это неупорядоченные последовательности. Часто стоит задача сохранить порядок следования элементов. Для этого удобно воспользоваться типом данных OrderedDict из модуля collections
🔗 Python tricks
Среди регулярно используемых трюков в Python – преобразование списка во множество и обратно в список для удаления повторяющихся элементов списка
Но множества – это неупорядоченные последовательности. Часто стоит задача сохранить порядок следования элементов. Для этого удобно воспользоваться типом данных OrderedDict из модуля collections
🔗 Python tricks
Особые методы сравнения множеств (set, frozenset)
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
🔗 Python tricks
set_a.isdisjoint(set_b) — истина, если set_a и set_b не имеют общих элементов.
set_b.issubset(set_a) — если все элементы множества set_b принадлежат множеству set_a, то множество set_b целиком входит в множество set_a и является его подмножеством (set_b — подмножество)
set_a.issuperset(set_b) — соответственно, если условие выше справедливо, то set_a — надмножество
🔗 Python tricks
Функции min(), max(), sum()
Функции min(), max() — поиск минимального и максимального элемента соответственно — работают не только для числовых, но и для строковых значений.
sum() — суммирование всех элементов, если они все числовые.
🔗 Python tricks
Функции min(), max() — поиск минимального и максимального элемента соответственно — работают не только для числовых, но и для строковых значений.
sum() — суммирование всех элементов, если они все числовые.
🔗 Python tricks
Возможная ошибка при обработке элементов
Не меняйте количество элементов коллекции в теле цикла во время итерации по этой же коллекции! — Это порождает не всегда очевидные на первый взгляд ошибки. Чтобы этого избежать подобных побочных эффектов, можно, например, итерировать копию коллекции.
🔗 Python tricks
Не меняйте количество элементов коллекции в теле цикла во время итерации по этой же коллекции! — Это порождает не всегда очевидные на первый взгляд ошибки. Чтобы этого избежать подобных побочных эффектов, можно, например, итерировать копию коллекции.
🔗 Python tricks
Arrow
Arrow — это мощная библиотека, которая упрощает работу с датами и временем, делая код более читаемым и поддерживаемым. Она предоставляет множество удобных функций для обработки времени в Python и является отличной альтернативой стандартному модулю
Вот некоторые из ключевых особенностей:
1.
2. Для работы с датами вы можете выполнять арифметические операции, добавлять и вычитать дни, часы, минуты и другие временные интервалы.
3. Вы можете легко создавать объекты
4.
5.
🔗 Python tricks
Arrow — это мощная библиотека, которая упрощает работу с датами и временем, делая код более читаемым и поддерживаемым. Она предоставляет множество удобных функций для обработки времени в Python и является отличной альтернативой стандартному модулю
datetime
.Вот некоторые из ключевых особенностей:
1.
Arrow
предоставляет различные способы создания объектов Arrow. Вы можете создать объект Arrow
, представляющий текущее время, с использованием arrow.now()
, или указать конкретную дату и время.2. Для работы с датами вы можете выполнять арифметические операции, добавлять и вычитать дни, часы, минуты и другие временные интервалы.
3. Вы можете легко создавать объекты
Arrow
с указанием конкретной временной зоны и выполнять конвертацию между ними.4.
Arrow
предоставляет метод format
, который позволяет легко форматировать дату и время в строку в соответствии с заданным форматом.5.
Arrow
позволяет представлять даты и время в словесном формате, типа «сегодня», «вчера» и «завтра».🔗 Python tricks
Что такое %s?
🔗 Python tricks
%s
— это специальное форматирующее поле, которое используется для вставки строковых значений в другие строки, а также для форматирования строк. Он является частью строкового форматирования, используемого в функциях print()
, str.format()
, и старом стиле форматирования с оператором %
.🔗 Python tricks
Изменение элемента списка по индексу (ч.1)
Поскольку кортежи и строки у нас неизменяемые коллекции, то по индексу мы можем только брать элементы, но не менять их
🔗 Python tricks
Поскольку кортежи и строки у нас неизменяемые коллекции, то по индексу мы можем только брать элементы, но не менять их
🔗 Python tricks
Изменение элемента списка по индексу (ч.2)
А вот для списка, если взятие элемента по индексу располагается в левой части выражения, а далее идёт оператор присваивания =, то мы задаём новое значение элементу с этим индексом.
🔗 Python tricks
А вот для списка, если взятие элемента по индексу располагается в левой части выражения, а далее идёт оператор присваивания =, то мы задаём новое значение элементу с этим индексом.
🔗 Python tricks
Mypy
Mypy — это инструмент для статической типизации в Python. Он добавляет дополнительный слой проверки типов в ваш код, что помогает обнаруживать и предотвращать ошибки, связанные с типами данных, на этапе разработки, до выполнения программы.
Статическая типизация означает, что вы аннотируете типы для переменных, аргументов функций и возвращаемых значений в своем коде. Эти аннотации указывают Mypy, какие типы ожидаются для каждой переменной и выражения.
Mypy выполняет проверку типов на основе аннотаций, проверяя код на соответствие указанным типам. Если обнаруживаются несоответствия, Mypy генерирует ошибки или предупреждения, указывая на место, где ошибка произошла.
Это помогает повысить надежность и читаемость кода. Аннотации типов делают код более понятным и документируют ожидаемую структуру данных, что облегчает совместную работу в команде.
🔗 Python tricks
Mypy — это инструмент для статической типизации в Python. Он добавляет дополнительный слой проверки типов в ваш код, что помогает обнаруживать и предотвращать ошибки, связанные с типами данных, на этапе разработки, до выполнения программы.
Статическая типизация означает, что вы аннотируете типы для переменных, аргументов функций и возвращаемых значений в своем коде. Эти аннотации указывают Mypy, какие типы ожидаются для каждой переменной и выражения.
Mypy выполняет проверку типов на основе аннотаций, проверяя код на соответствие указанным типам. Если обнаруживаются несоответствия, Mypy генерирует ошибки или предупреждения, указывая на место, где ошибка произошла.
Это помогает повысить надежность и читаемость кода. Аннотации типов делают код более понятным и документируют ожидаемую структуру данных, что облегчает совместную работу в команде.
🔗 Python tricks