Динамический ввод (ч.1)
В Java, C++ и других статически типизированных языках нужно указывать тип данных возвращаемого значения функции и тип каждого её аргумента. Напротив, Python, как динамически типизированный язык, не вынуждает явно указывать типы данных. На основе присвоенных значений Python отслеживает их сам.
#theory // Just Python
В Java, C++ и других статически типизированных языках нужно указывать тип данных возвращаемого значения функции и тип каждого её аргумента. Напротив, Python, как динамически типизированный язык, не вынуждает явно указывать типы данных. На основе присвоенных значений Python отслеживает их сам.
#theory // Just Python
Упрощение создания операторов сравнения
Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
#theory // Just Python
Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
#theory // Just Python
Операторы сравнения
Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering
#theory // Just Python
Существует немало операторов сравнения. Например — lt, le, gt, ge. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering
#theory // Just Python
Forwarded from Романцев768 | Romancev768
Розыгрыш iPhone 17 Pro и лучших AirPods!
С каналом Костыль разыгрываем 2 отличных приза:
Призы
➡️ iPhone 17 Pro — лучший iPhone, универсального размера. Цвет выберет победитель
➡️ AirPods Pro 3 — наушники получит победитель под номером 2
Условия:
• подписаться на @Romancev768
• подписаться на @kostylofficial
• нажать на кнопку «Участвовать» под этим постом.
Двух победителей выберет рандомайзер.
Когда итоги?
В пятницу, 19 декабря, в 18:00
Где итоги?
В этом посте, вы его читаете, все итоги подводятся в постах с кнопкой «Участвовать».
Как получить?
Доставим в ближайшее отделение СДЭК. Получателю должно быть 18+, могут забрать родители.
А точно не скам?
Победители получат кружок в котором я назову их имя и расскажу о доставке приза.
С каналом Костыль разыгрываем 2 отличных приза:
Призы
Условия:
• подписаться на @Romancev768
• подписаться на @kostylofficial
• нажать на кнопку «Участвовать» под этим постом.
Двух победителей выберет рандомайзер.
Когда итоги?
В пятницу, 19 декабря, в 18:00
Где итоги?
В этом посте, вы его читаете, все итоги подводятся в постах с кнопкой «Участвовать».
Как получить?
Доставим в ближайшее отделение СДЭК. Получателю должно быть 18+, могут забрать родители.
А точно не скам?
Победители получат кружок в котором я назову их имя и расскажу о доставке приза.
Please open Telegram to view this post
VIEW IN TELEGRAM
Имитация
В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
#theory // Just Python
В вышеприведённом примере экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
#theory // Just Python
Управление тем, что может быть импортировано из модуля, а что — нет
В некоторых языках имеются предельно чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. Например — в Golang экспортируются лишь сущности, имена которых начинаются с большой буквы. В Python же экспортируется всё. Но лишь до тех пор, пока не используется атрибут all
#theory // Just Python
В некоторых языках имеются предельно чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. Например — в Golang экспортируются лишь сущности, имена которых начинаются с большой буквы. В Python же экспортируется всё. Но лишь до тех пор, пока не используется атрибут all
#theory // Just Python
Экономия памяти с помощью slots
Эта функция хорошо сказывается на производительности, но, с точки зрения потребления памяти, это неэффективно. Обычно, правда, проблем эта особенность не вызывает. Однако если вы столкнулись в подобной ситуации с нехваткой памяти — можете попробовать воспользоваться атрибутом slots
#theory // Just Python
Эта функция хорошо сказывается на производительности, но, с точки зрения потребления памяти, это неэффективно. Обычно, правда, проблем эта особенность не вызывает. Однако если вы столкнулись в подобной ситуации с нехваткой памяти — можете попробовать воспользоваться атрибутом slots
#theory // Just Python
Итерация по Списку в Python С Помощью Метода Enumerate
Если вы не знаете, что именно enumerate делает в python, то позвольте мне объяснить вам.Метод enumerate() добавляет счетчик к итерируемому объекту и возвращает его. И что бы ни возвращал метод enumerate, это будет объект enumerate.
Основное преимущество использования метода enumerate заключается в том, что вы можете преобразовать объекты enumerate в list и tuple с помощью методов list() и tuple() соответственно.
#theory // Just Python
Если вы не знаете, что именно enumerate делает в python, то позвольте мне объяснить вам.Метод enumerate() добавляет счетчик к итерируемому объекту и возвращает его. И что бы ни возвращал метод enumerate, это будет объект enumerate.
Основное преимущество использования метода enumerate заключается в том, что вы можете преобразовать объекты enumerate в list и tuple с помощью методов list() и tuple() соответственно.
#theory // Just Python
Использование генераторов списков для быстрого создания списков
Генераторы списков (list comprehensions) позволяют создавать новые списки на основе существующих в одну строку. Это значительно упрощает код и делает его более читабельным.
Использование генераторов списков делает код более читаемым и коротким, а также ускоряет выполнение операций с данными.
#theory // Just Python
Генераторы списков (list comprehensions) позволяют создавать новые списки на основе существующих в одну строку. Это значительно упрощает код и делает его более читабельным.
Использование генераторов списков делает код более читаемым и коротким, а также ускоряет выполнение операций с данными.
#theory // Just Python
Использование функции import для динамического импорта модулей
В этом примере мы используем функциютом примере для динамического импорта математического модуля. Функцияа модулей
Ввозвращает объект модуля, который мы можем использовать для доступа к его атрибутам и функциям.
#theory // Just Python
В этом примере мы используем функциютом примере для динамического импорта математического модуля. Функцияа модулей
Ввозвращает объект модуля, который мы можем использовать для доступа к его атрибутам и функциям.
#theory // Just Python
Объединение скриптов Python и Shell
Теперь это то, что вы не можете сделать с C или C ++. Если вы парень с открытым исходным кодом, то вы наверняка используете Linux в качестве основной операционной системы или, по крайней мере, двойную загрузку. Итак, Linux уже включает Python. И python чрезвычайно совместим с Linux. Это дает нам преимущество их компиляции и объединения. Вы можете просто создать сценарий, который может работать как обычный сценарий Unix, а также интерпретируемый код Python одновременно.
#theory // Just Python
Теперь это то, что вы не можете сделать с C или C ++. Если вы парень с открытым исходным кодом, то вы наверняка используете Linux в качестве основной операционной системы или, по крайней мере, двойную загрузку. Итак, Linux уже включает Python. И python чрезвычайно совместим с Linux. Это дает нам преимущество их компиляции и объединения. Вы можете просто создать сценарий, который может работать как обычный сценарий Unix, а также интерпретируемый код Python одновременно.
#theory // Just Python
Как найти наиболее частотные элементы с помощью счетчика
Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter.
Counter().most_common([n])
#theory // Just Python
Счетчик очень полезен в реальных приложениях. Особенно, когда вам нужно обработать большие данные, и вы хотите узнать частотность некоторых элементов. Давайте рассмотрим несколько очень полезных методов, использующих counter.
Counter().most_common([n])
#theory // Just Python
Извлечение аудио из видеофайлов
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
#theory // Just Python
Бывает так, что у нас есть mp4-файл, но нам нужна только звуковая дорожка из него. Скажем, чтобы сделать другое видео с таким же звуковым сопровождением. Эта проблема решается установкой библиотеки moviepy.
#theory // Just Python
Как удалить несколько ключей из словаря Python
Python позволяет легко удалить из словаря не только один определенный ключ, но и несколько. Самый безопасный способ сделать это — перебрать список ключей и использовать метод .pop().
#theory // Just Python
Python позволяет легко удалить из словаря не только один определенный ключ, но и несколько. Самый безопасный способ сделать это — перебрать список ключей и использовать метод .pop().
#theory // Just Python
UserDict
Это класс-оболочка для словарей. Его синтаксис аналогичен UserList и UserString.
Мы передаем словарь в качестве аргумента, который хранится в атрибуте ‘data’.
#theory // Just Python
Это класс-оболочка для словарей. Его синтаксис аналогичен UserList и UserString.
Мы передаем словарь в качестве аргумента, который хранится в атрибуте ‘data’.
#theory // Just Python
Defaultdict
Словарь представляет из себя неупорядоченный набор ключей и значений.
В парах ключ:значение ключи должны быть уникальны и неизменяемы. Поэтому список не может быть ключом словаря, так как он изменяемый.
#theory // Just Python
Словарь представляет из себя неупорядоченный набор ключей и значений.
В парах ключ:значение ключи должны быть уникальны и неизменяемы. Поэтому список не может быть ключом словаря, так как он изменяемый.
#theory // Just Python
Чем defaultdict отличается от простого словаря?
Если вы попытаетесь получить доступ к ключу, которого нет в словаре, он выдаст ошибку KeyError. В то время как при использовании defaultdict такой ошибки не будет.
Если вы попробуете обратиться к отсутствующему ключу, defaultdict просто вернет значение по умолчанию.
Синтаксис будет следующим: defaultdict(default_factory).
При обращении к отсутствующему ключу функция default_factory вернет значение по умолчанию.
#theory // Just Python
Если вы попытаетесь получить доступ к ключу, которого нет в словаре, он выдаст ошибку KeyError. В то время как при использовании defaultdict такой ошибки не будет.
Если вы попробуете обратиться к отсутствующему ключу, defaultdict просто вернет значение по умолчанию.
Синтаксис будет следующим: defaultdict(default_factory).
При обращении к отсутствующему ключу функция default_factory вернет значение по умолчанию.
#theory // Just Python
OrderedDict
Словарь — это НЕупорядоченная коллекция пар ключ-значение. Однако OrderedDict поддерживает упорядочивание ключей.
Это в некотором роде подкласс словаря dict.
Давайте создадим обычный словарь и сделаем его OrderedDict, чтобы показать, в чем заключается разница.
#theory // Just Python
Словарь — это НЕупорядоченная коллекция пар ключ-значение. Однако OrderedDict поддерживает упорядочивание ключей.
Это в некотором роде подкласс словаря dict.
Давайте создадим обычный словарь и сделаем его OrderedDict, чтобы показать, в чем заключается разница.
#theory // Just Python
Как создать namedtuple из словаря в Python
Вы заметили, как мы преобразовали словарь в именованный кортеж с помощью оператора **?
Все, что вам нужно сделать для этого — определить структуру namedtuple и передать словарь (**dict) этому именованному кортежу в качестве аргумента. Единственное требование заключается в том, что ключи словаря должны совпадать с именами полей namedtuple.
#theory // Just Python
Вы заметили, как мы преобразовали словарь в именованный кортеж с помощью оператора **?
Все, что вам нужно сделать для этого — определить структуру namedtuple и передать словарь (**dict) этому именованному кортежу в качестве аргумента. Единственное требование заключается в том, что ключи словаря должны совпадать с именами полей namedtuple.
#theory // Just Python
Как заменить атрибут в именованном кортеже
Что делать, если значение одного атрибута необходимо изменить?
Вам нужно обновить его в данных. Для этого просто воспользуемся методом ._replace()
#theory // Just Python
Что делать, если значение одного атрибута необходимо изменить?
Вам нужно обновить его в данных. Для этого просто воспользуемся методом ._replace()
#theory // Just Python