TGViewer
Channel Public Channel
Python Learning

Python Learning

@python_per_month

№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Subscribers
28.1K
Photos
2K
Videos
8
Links
1K

Showing posts older than #2870 · Back to latest

Older Posts 19 shown
Post #2869 4.91K
👀 Декоратор для автоматического кэширования результатов функций

Кэширование — это техника, которая позволяет значительно улучшить производительность, сохраняя результаты вызовов функций и возвращая кэшированные результаты для одинаковых входных данных.

✔️ В Python можно создать декоратор, который автоматически кэширует результаты функций.

Python Learning
👩‍💻
  • 👍 16
  • 🍾 2
  • 🏆 1
Post #2867 4.64K
⚙️ Декорируем функции

🗣️ Декоратор – это обертка вокруг функции, которая определенным образом изменяет ее поведение. Существуют варианты использования декораторов, и вы, возможно, уже применяли их раньше при работе с такими фреймворками, как Flask.

def print_argument(func):
def wrapper(the_number):
print("Argument for",
func.__name__,
"is", the_number)
return func(the_number)
return wrapper
@print_argument
def add_one(x):
return x + 1
print(add_one(1))


Внутри print_argument мы определяем функцию-обертку. Она выводит аргумент и имя вызываемой функции, выполняет фактическую функцию и возвращает ее результат, как если бы функция вызывалась «обычно».

➡️ С помощью @print_argument мы применяем наш декоратор к функции. Декоратор может быть повторно использован и для других функций.

Argument for add_one is 1
2


Python Learning
👩‍💻
  • 👍 10
  • 🏆 1
  • 🍾 1
Post #2866 4.54K
➡️ Проверка необходимой версии Python

✔️ Чтобы ваши пользователи не могли запустить скрипт в несовместимой версии, в коде стоит проверить наличие актуальной версии Python. Проведите простую проверку.

Python Learning
👩‍💻
  • 🏆 6
  • 👍 4
  • 🍾 1
Post #2865 4.57K
➡️ Использование подчеркивания в REPL

Вы можете получить результат последнего выражения в Python REPL с помощью оператора подчеркивания, например, в Python REPL это выглядит следующим образом:

>>> 3 * 3
9
>>> _ + 3
12


🗣️ Прием работает и в оболочке IPython.

Python Learning
👩‍💻
  • 😱 16
  • 👍 11
  • 🍾 2
  • 🏆 1
Post #2863 4.14K
⚙️ Обязательные аргументы

➡️ Для принудительного использования аргументов ставьте символ звездочки (*) перед ними, заставляя все аргументы стать ключевыми.

Python Learning
👩‍💻
  • 👍 15
  • 🎉 1
  • 🏆 1
Post #2862 4.54K
➡️ Data classes

Начиная с версии 3.7, Python поставляется с классами данных. У них есть несколько преимуществ по сравнению с обычными классами или другими альтернативами:

• возврат нескольких значений или словарей;
• класс данных требует минимального количества кода;
• возможность сравнения классов данных;
• возможность распечатать класс данных для отладки при помощи repr;
• снижение вероятности ошибок в связи с требованием класса данных type hints.

Python Learning
👩‍💻
  • 👍 10
  • 🍾 2
  • 😁 1
  • 🏆 1
Post #2861 4.54K
➡️ PyYAML

YAML означает «YAML — не язык разметки» («YAML Ain’t Markup Language»). Это язык форматирования данных, являющийся надмножеством JSON.

🗣️ В отличие от JSON, YAML может хранить более сложные объекты и ссылаться на собственные элементы. Также там можно писать комментарии, что делает YAML подходящим для конфигурационных файлов.


✔️ Модуль PyYAML позволяет использовать YAML в Python. PyYAML позволяет хранить любые Python-объекты и экземпляры любых пользовательских классов.

🔗 Ссылочка на доку

Python Learning
👩‍💻
  • 👍 10
  • 🏆 2
  • 🎉 1
Post #2859 4.22K
➡️ Многоточие в Python

🗣️ Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python:

>>> ...
Ellipsis


⚙️ Применяется он преимущественно в операциях нарезки матриц в NumPy. Однако можно использовать его вместо обычного pass в качестве плэйсхолдера в функции, которую еще не реализовали:

python        
def my_awesome_func():
...


✔️ Вот валидный код Python, и выглядит он теперь не так уж плохо.

Python Learning
👩‍💻
  • 👍 10
  • 🥰 1
  • 🎉 1
  • 💯 1
Post #2858 5.31K
➡️ wikipedia

У Wikipedia есть классное API, которое позволяет получить доступ к непревзойдённому источнику полностью бесплатной информации.

✔️ Модуль wikipedia делает доступ к этому API чуть ли чрезмерно удобным.

🗣️ Как и настоящий сайт, модуль предоставляет поддержку многих языков, разрешение многозначности страниц, получение случайной страницы и даже метод donate().

Python Learning
👩‍💻
  • 🍾 6
  • 🗿 3
  • 👍 2
  • ❤‍🔥 1
Post #2857 5.12K
⚙️ sh

Python — отличный скриптовый язык. Но иногда стандартные библиотеки os и subprocess вызывают только головную боль.

✔️ Библиотека sh может стать приятной альтернативой. Она позволяет вызывать любую программу как обычную функцию, что полезно для автоматизации различных задач исключительно с помощью Python.

🗣️ Библиотека sh поддерживает только платформы Linux и macOS; для работы на Windows вам придётся поискать другой инструмент.

🔗 Ссылочка на доку

Python Learning
👩‍💻
  • 👍 5
  • 🥰 1
  • 😱 1
  • 🏆 1
  • 🍾 1
Post #2856 5.26K
⚙️ __repr__

При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой. Например:

>>> file = open('file.txt', 'r')
>>> print(file)
<open file 'file.txt', mode 'r' at 0x10d30aaf0>


✔️ Это сильно упрощает отладку. Вот всё, что вам нужно сделать:

class SomeClass:
def __repr__(self):
return "<какое-то описание>"

some_instance = SomeClass()

# выводит <какое-то описание>
print(some_instance)


Метод __repr__() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод __str__() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.

Python Learning
👩‍💻
  • 👍 12
Post #2855 4.64K
⚙️ Перегрузка операторов

В Python есть поддержка перегрузки операторов — одной из тех штук, о которых говорят все настоящие computer-scientis’ы.

✔️ На самом деле идея проста. Когда-нибудь задумывались, почему Python позволяет использовать оператор + как для сложения чисел, так и для конкатенации строк? За этим как раз и стоит перегрузка операторов.

🗣️ Вы можете определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете.

Python Learning
👩‍💻
  • 👍 9
  • 🍾 2
  • 🏆 1
Post #2854 4.75K
➡️ Queue

Python поддерживает многопоточность, в использовании которой помогает стандартный модуль Queue.

✔️ Он позволяет реализовывать такую структуру данных, как очередь. Очереди позволяют добавлять и извлекать элементы согласно определённому правилу.

🗣️ Очереди «первым пришёл — первым ушёл» («first in, first out», FIFO) позволяют извлекать объекты в порядке их добавления. Из очередей «последним пришёл — первым ушёл» («last in, first out», LIFO) можно извлекать последние добавленные объекты.


⚙️ Наконец, приоритетные очереди позволяют извлекать объекты согласно порядку их сортировки.

Python Learning
👩‍💻
  • 🏆 4
  • 🗿 2
  • 👍 1
  • 🍾 1
Post #2853 5.38K
❓ howdoi

Зависли над какой-то проблемой и не можете вспомнить её решение? Нужно зайти на StackOverflow, но не хочется покидать терминал?

✔️ Тогда вам не обойтись без этого инструмента командной строки:

$ pip install howdoi


➡️ Задайте любой вопрос, и он постарается найти ответ на него:

$ howdoi vertical align css
$ howdoi for loop in java
$ howdoi undo commits in git


🗣️ Но будьте осторожны: он извлекает код из топовых ответов на StackOverflow и не всегда даёт полезную информацию:

$ howdoi exit vim


Python Learning
👩‍💻
  • 👍 10
  • 😢 2
  • 🎉 2
  • ❤‍🔥 1
Post #2850 4.44K
➡️ Jedi

🗣️ Библиотека Jedi предназначена для автодополнения и анализа кода. Она ускоряет процесс написания кода и делает его более продуктивным.

Если вы не разрабатываете свою IDE, то вам, наверное, будет более интересно использовать Jedi в качестве расширения редактора. К счастью, уже есть много вариантов.

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.


🔗 Ссылочка на доку

Python Learning
👩‍💻
  • 👍 2
  • 🎉 2
  • ⚡ 1
Post #2848 4.66K
  • 🤔 27
  • 👍 15
  • 🏆 7
  • 👨‍💻 2
Post #2846 4.86K
⌛ Что будет выведено при выполнении кода?

Python Learning
👩‍💻
Post #2845 5.31K
⚙️ dir

Когда-нибудь задумывались о том, как заглянуть внутрь объекта в Python и посмотреть на его атрибуты? Конечно, задумывались.

➡️ Используем командную строку:

>>> dir()
>>> dir("Hello World")
>>> dir(dir)


🗣️ Это может пригодиться при интерактивной сессии в Python, а также для динамического изучения объектов и модулей, с которыми вы работаете.

Python Learning
👩‍💻
  • 🍾 12
  • 👍 7
  • 🤔 4
  • 🏆 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →