Python академия
7.74K subscribers
2.31K photos
5 videos
268 links
Python академия. Учи Python быстро и легко. По всем вопросам @evgenycarter
Download Telegram
Как создавать списки в Python

Чтобы создать новый список, сначала дайте ему имя. Затем добавьте оператор присваивания (=) и пару квадратных скобок. Внутри скобок добавьте значения, которые должны содержаться в списке.

Подписывайтесь на канал 👉@pythonofff
👍2
Определение имени функции изнутри этой функции в Python

Возникает ситуация, когда при написании кода на Python требуется определить имя функции изнутри этой же функции. Это может быть полезно, например, при отладке программы или при логировании, когда важно знать, какая функция была вызвана.

Рассмотрим простой пример. Допустим, есть модуль mymodule и в нем функция myfunc. И нужно, чтобы при вызове mymodule.myfunc() эта функция могла выводить свое имя.


# mymodule.py

def myfunc():
print("my name is", __myname__) # как определить __myname__?


Как видно из примера, требуется найти способ определить имя функции myfunc внутри самой этой функции.

В Python нет встроенного способа определить имя функции изнутри этой функции, но это можно сделать с помощью метода name объекта функции.

# mymodule.py

def myfunc():
print("my name is", myfunc.__name__)


В этом случае при вызове функции myfunc она выведет «my name is myfunc».

Такой способ работает, потому что в Python функции являются объектами, и у всех объектов функции есть атрибут name, который содержит имя функции.

Обратите внимание, что такой способ работает только тогда, когда функция вызывается по имени, которое было использовано при ее определении. Если же функцию присвоить другой переменной и вызвать по этому новому имени, то myfunc.__name__ все равно вернет первоначальное имя функции:

# mymodule.py

def myfunc():
print("my name is", myfunc.__name__)

anothername = myfunc
anothername() # выведет "my name is myfunc"


Таким образом, с помощью метода name можно определить имя функции изнутри этой функции в Python.


Подписывайтесь на канал 👉@pythonofff
Делаем планировщик задач

К моему удивлению, далеко не все знают про пакет schedule, который позволяет планировать задачи и повторять их через промежуток времени.

Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный.

Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.

Подписывайтесь на канал 👉@pythonofff
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
Работаем с файловыми путями

В стандартной библиотеке есть максимально удобный пакет pathlib для простой работы с файловыми путями.

Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.

Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.

Итого, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.

Подписывайтесь на канал 👉@pythonofff
👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
1