Конструктор
Метод, который вызывается при создании объектов, в ООП зовётся конструктором. Он нужен для объектов, которые изначально должны иметь какие-то значение. Например, пустые экземпляры класса "Студент" бессмысленны, и желательно иметь хотя бы минимальный обозначенный набор вроде имени, фамилии и группы.
В качестве Питоновского конструктора выступает метод init()
🔗 Python tricks
Метод, который вызывается при создании объектов, в ООП зовётся конструктором. Он нужен для объектов, которые изначально должны иметь какие-то значение. Например, пустые экземпляры класса "Студент" бессмысленны, и желательно иметь хотя бы минимальный обозначенный набор вроде имени, фамилии и группы.
В качестве Питоновского конструктора выступает метод init()
🔗 Python tricks
NumPy: copy
numpy.copy() в библиотеке NumPy используется для создания копии массива или подмассива. Когда ты присваиваешь один массив другому, оба массива начинают указывать на одни и те же данные. Используя numpy.copy(), ты создаешь новый массив, который содержит копию данных из оригинального массива. Это позволяет изменять его без изменения оригинала.
🔗 Python tricks
numpy.copy() в библиотеке NumPy используется для создания копии массива или подмассива. Когда ты присваиваешь один массив другому, оба массива начинают указывать на одни и те же данные. Используя numpy.copy(), ты создаешь новый массив, который содержит копию данных из оригинального массива. Это позволяет изменять его без изменения оригинала.
🔗 Python tricks
Методы сравнения объектов между собой (ч.2)
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks
Дан целочисленный массив nums, поверните массив вправо на k шагов.
reverse принимает nums и переворачивает элементы списка между индексами i и j, затем элементов с индексами i+1 и j-1, и так далее, пока индексы не встретятся посередине. Этот процесс продолжается до тех пор, пока левый индекс меньше правого индекса.
rotate принимает nums и число шагов поворота k и поворачивает список на k шагов вправо. Это достигается путем выполнения трех операций переворота: сначала переворачивается левая часть списка (от начала до
len(nums) - k - 1), затем правая часть списка (от len(nums) - k до конца), и, наконец, весь список целиком.
Эти три операции переворота вместе приводят к повороту списка на k шагов вправо.
🔗 Python tricks
reverse принимает nums и переворачивает элементы списка между индексами i и j, затем элементов с индексами i+1 и j-1, и так далее, пока индексы не встретятся посередине. Этот процесс продолжается до тех пор, пока левый индекс меньше правого индекса.
rotate принимает nums и число шагов поворота k и поворачивает список на k шагов вправо. Это достигается путем выполнения трех операций переворота: сначала переворачивается левая часть списка (от начала до
len(nums) - k - 1), затем правая часть списка (от len(nums) - k до конца), и, наконец, весь список целиком.
Эти три операции переворота вместе приводят к повороту списка на k шагов вправо.
🔗 Python tricks
Классы данных
Data classes - это одна из новых функций Python 3.7. Благодаря data classes вам не нужно писать шаблонный код, чтобы получить правильную инициализацию, представление и сравнения для ваших объектов.
Здесь мы используем декоратор dataclass для того, чтобы автоматически сгенерировать методы __init__() и __repr__().
Теперь экземпляр класса Point имеет красивое строковое представление благодаря автоматически сгенерированному методу __repr__(). Также мы можем обращаться к полям x и y напрямую.
🔗 Python tricks
Data classes - это одна из новых функций Python 3.7. Благодаря data classes вам не нужно писать шаблонный код, чтобы получить правильную инициализацию, представление и сравнения для ваших объектов.
Здесь мы используем декоратор dataclass для того, чтобы автоматически сгенерировать методы __init__() и __repr__().
Теперь экземпляр класса Point имеет красивое строковое представление благодаря автоматически сгенерированному методу __repr__(). Также мы можем обращаться к полям x и y напрямую.
🔗 Python tricks
Переопределение
Сейчас у нас и кошка, и собака просто "издают животные звуки", а хотелось бы, конечно, слышать звуки, свойственные именно этим животным. Для этого существует механика переопределения. Достаточно объявить в классе-наследнике метод с тем же названием, что и в базовом классе.
🔗 Python tricks
Сейчас у нас и кошка, и собака просто "издают животные звуки", а хотелось бы, конечно, слышать звуки, свойственные именно этим животным. Для этого существует механика переопределения. Достаточно объявить в классе-наследнике метод с тем же названием, что и в базовом классе.
🔗 Python tricks
Атрибуты объекта
Атрибуты класса могут быть динамическими и статическими. На уровне объекта они инициализируются так.
🔗 Python tricks
Атрибуты класса могут быть динамическими и статическими. На уровне объекта они инициализируются так.
🔗 Python tricks
NumPy: shape
Функция shape используется для получения размерности массива. Она возвращает кортеж, показывающий количество элементов в каждом измерении массива. Например, если у тебя есть массив arr размером (3, 4), то arr.shape вернет (3, 4), указывая на то, что у массива три строки и четыре столбца.
🔗 Python tricks
Функция shape используется для получения размерности массива. Она возвращает кортеж, показывающий количество элементов в каждом измерении массива. Например, если у тебя есть массив arr размером (3, 4), то arr.shape вернет (3, 4), указывая на то, что у массива три строки и четыре столбца.
🔗 Python tricks
Linux как секс!
Если зубрить его по книжкам, то кроме теории и деградации, ты ничему не научишься.
В канале BashDays ты найдешь лучшие Linux и Bash практики. Действующий девопс-инженер, самобытно и с долей юмора, травит темы:
- Рекавери файлов через grep
- Почему коты гадят в макбуки
- Как отключить логирование
- Неочевидные трюки на Bash
- Сниффер SSH на strace
И это только цветочки. А если заскучал, поиграй с друзьями в piu-piu и надери им бэкенд. Рекомендую!
В BashDays даже джуны становятся сеньорами.
Подписывайся, это самый простой способ прокачать свои хард-скиллы: — @bashdays
Если зубрить его по книжкам, то кроме теории и деградации, ты ничему не научишься.
В канале BashDays ты найдешь лучшие Linux и Bash практики. Действующий девопс-инженер, самобытно и с долей юмора, травит темы:
- Рекавери файлов через grep
- Почему коты гадят в макбуки
- Как отключить логирование
- Неочевидные трюки на Bash
- Сниффер SSH на strace
И это только цветочки. А если заскучал, поиграй с друзьями в piu-piu и надери им бэкенд. Рекомендую!
В BashDays даже джуны становятся сеньорами.
Подписывайся, это самый простой способ прокачать свои хард-скиллы: — @bashdays
Методы сравнения объектов между собой (ч.1)
Метод lt(self, other) в Python позволяет определить порядок сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). При реализации этого метода в классе можно указать, какие атрибуты объекта должны учитываться при сравнении с другими объектами для определения их относительного порядка.
Например, предположим, что у нас есть класс Point, который представляет собой точку на плоскости и имеет атрибуты x и y. Мы можем определить метод lt(self, other) в классе Point, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.
🔗 Python tricks
Метод lt(self, other) в Python позволяет определить порядок сортировки объектов при использовании встроенных функций сортировки, таких как sorted(). При реализации этого метода в классе можно указать, какие атрибуты объекта должны учитываться при сравнении с другими объектами для определения их относительного порядка.
Например, предположим, что у нас есть класс Point, который представляет собой точку на плоскости и имеет атрибуты x и y. Мы можем определить метод lt(self, other) в классе Point, чтобы при сравнении двух точек учитывался их порядок по оси x, а в случае равенства координат по оси x - по оси y.
🔗 Python tricks
NumPy: reshape
reshape() — это функция библиотеки NumPy, которая используется для изменения формы массива без изменения его данных. Она позволяет переформатировать массив в новую форму, указанную в аргументе функции. Например, если у тебя есть одномерный массив из 12 элементов, ты можешь использовать reshape() для преобразования его в двумерный массив размером 3x4 или 4x3.
🔗 Python tricks
reshape() — это функция библиотеки NumPy, которая используется для изменения формы массива без изменения его данных. Она позволяет переформатировать массив в новую форму, указанную в аргументе функции. Например, если у тебя есть одномерный массив из 12 элементов, ты можешь использовать reshape() для преобразования его в двумерный массив размером 3x4 или 4x3.
🔗 Python tricks
Методы сравнения объектов между собой (ч.2)
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks
Метод le(self, other) позволяет определить, каким образом объект вашего класса должен вести себя, когда сравнивается с другим объектом с помощью оператора "<=". Например, если вы хотите сравнивать объекты вашего класса по каким-то определенным критериям (например, по их атрибутам), вы можете переопределить метод le(self, other) таким образом, чтобы он возвращал True, если объект self меньше или равен объекту other в соответствии с этими критериями, и False в противном случае.
🔗 Python tricks
Pandas: dropna
Метод dropna() используется в pandas для удаления строк или столбцов, содержащих пропущенные значения (NaN). По умолчанию метод dropna() возвращает новый DataFrame и не меняет исходный. Если ты хочешь изменить исходный DataFrame, используй аргумент inplace = True.
🔗 Python tricks
Метод dropna() используется в pandas для удаления строк или столбцов, содержащих пропущенные значения (NaN). По умолчанию метод dropna() возвращает новый DataFrame и не меняет исходный. Если ты хочешь изменить исходный DataFrame, используй аргумент inplace = True.
🔗 Python tricks
Методы сравнения объектов между собой (ч.3)
Метод eq(self, other) предназначен для определения поведения оператора сравнения "==" для объектов определенного класса. Этот метод позволяет сравнивать два объекта и определять, равны ли они друг другу.
🔗 Python tricks
Метод eq(self, other) предназначен для определения поведения оператора сравнения "==" для объектов определенного класса. Этот метод позволяет сравнивать два объекта и определять, равны ли они друг другу.
🔗 Python tricks
Методы сравнения объектов между собой (ч.4)
Метод ne(self, other) позволяет определить, какие условия должны выполняться для того, чтобы два объекта вашего класса были считаны не равными. В приведенном примере, если хотя бы одна из координат x или y точек отличается, то точки считаются не равными.
Таким образом, использование метода ne(self, other) позволяет гибко управлять сравнением объектов вашего класса и определять, какие именно параметры считать при сравнении.
🔗 Python tricks
Метод ne(self, other) позволяет определить, какие условия должны выполняться для того, чтобы два объекта вашего класса были считаны не равными. В приведенном примере, если хотя бы одна из координат x или y точек отличается, то точки считаются не равными.
Таким образом, использование метода ne(self, other) позволяет гибко управлять сравнением объектов вашего класса и определять, какие именно параметры считать при сравнении.
🔗 Python tricks
Методы сравнения объектов между собой (ч.5)
Метод gt(self, other) вызывается при выполнении операции сравнения "больше" (>). Этот метод позволяет определить, какой из двух объектов больше с точки зрения вашего класса. Например, если у вас есть класс Person с атрибутом age, вы можете определить метод gt(self, other), чтобы сравнивать людей по их возрасту.
🔗 Python tricks
Метод gt(self, other) вызывается при выполнении операции сравнения "больше" (>). Этот метод позволяет определить, какой из двух объектов больше с точки зрения вашего класса. Например, если у вас есть класс Person с атрибутом age, вы можете определить метод gt(self, other), чтобы сравнивать людей по их возрасту.
🔗 Python tricks
Методы сравнения объектов между собой (ч.6)
В данном примере мы создаем класс Item, у которого есть атрибут value. Метод ge(self, other) определяет поведение оператора >= для сравнения двух объектов типа Item по их значениям. Когда мы пишем item1 >= item2, вызывается метод item1.ge(item2), который сравнивает значения атрибутов value у обоих объектов и возвращает соответствующий результат сравнения.
Этот лайфхак позволяет более гибко управлять сравнением объектов в Python и добавляет возможность определить собственное поведение для оператора >= в контексте вашего класса.
🔗 Python tricks
В данном примере мы создаем класс Item, у которого есть атрибут value. Метод ge(self, other) определяет поведение оператора >= для сравнения двух объектов типа Item по их значениям. Когда мы пишем item1 >= item2, вызывается метод item1.ge(item2), который сравнивает значения атрибутов value у обоих объектов и возвращает соответствующий результат сравнения.
Этот лайфхак позволяет более гибко управлять сравнением объектов в Python и добавляет возможность определить собственное поведение для оператора >= в контексте вашего класса.
🔗 Python tricks
%%capture
Cкрывает выходные данные ячейки. Это полезно в разделе, где вы устанавливаете необходимые библиотеки: сводка процесса установки занимает много места и часто не является важной информацией, так что ее можно скрыть.
🔗 Python tricks
Cкрывает выходные данные ячейки. Это полезно в разделе, где вы устанавливаете необходимые библиотеки: сводка процесса установки занимает много места и часто не является важной информацией, так что ее можно скрыть.
🔗 Python tricks
Методы сравнения объектов между собой (ч.7)
В данном примере класс Person определен с атрибутами name и age. Метод hash(self) переопределен для этого класса, чтобы генерировать уникальный хэш на основе значений его атрибутов.
При создании объектов person1 и person3 с одинаковыми значениями атрибутов name и age, у них будет одинаковый хэш, что демонстрирует работу метода hash.
Этот лайфхак полезен при работе с типами данных, которые используют хэширование для быстрого доступа, такими как словари или множества. Правильная реализация метода hash позволяет использовать объекты вашего класса как ключи в словарях или элементы в множествах, обеспечивая эффективность и уникальность при доступе к данным.
🔗 Python tricks
В данном примере класс Person определен с атрибутами name и age. Метод hash(self) переопределен для этого класса, чтобы генерировать уникальный хэш на основе значений его атрибутов.
При создании объектов person1 и person3 с одинаковыми значениями атрибутов name и age, у них будет одинаковый хэш, что демонстрирует работу метода hash.
Этот лайфхак полезен при работе с типами данных, которые используют хэширование для быстрого доступа, такими как словари или множества. Правильная реализация метода hash позволяет использовать объекты вашего класса как ключи в словарях или элементы в множествах, обеспечивая эффективность и уникальность при доступе к данным.
🔗 Python tricks
NumPy: stack
numpy.stack() — это функция в библиотеке NumPy, которая объединяет несколько массивов в один. Например, если у тебя есть несколько одномерных массивов, ты можешь использовать numpy.stack() для объединения их в один многомерный массив.
🔗 Python tricks
numpy.stack() — это функция в библиотеке NumPy, которая объединяет несколько массивов в один. Например, если у тебя есть несколько одномерных массивов, ты можешь использовать numpy.stack() для объединения их в один многомерный массив.
🔗 Python tricks
Методы сравнения объектов между собой (ч.8)
bool(self) — вызывается функцией bool(...) и возвращает True или False в соответствии с реализацией. Если данный метод не реализован в объекте, и объект является какой-либо последовательностью (списком, кортежем и т.д.), вместо него вызывается метод len. Используется, в основном, в условиях if.
🔗 Python tricks
bool(self) — вызывается функцией bool(...) и возвращает True или False в соответствии с реализацией. Если данный метод не реализован в объекте, и объект является какой-либо последовательностью (списком, кортежем и т.д.), вместо него вызывается метод len. Используется, в основном, в условиях if.
🔗 Python tricks