!EtOwXhTzFTAeMBoSpH:matrix.org

SPb Python

7180 Members
79 Servers

Load older messages


SenderMessageTime
4 Dec 2023
@telegram_382093249:t2bot.ioMaxim AfanasevДа, именно. Если точнее, то декорируется не вызов, а объект функции09:02:33
@telegram_421715417:t2bot.ioВиктор "Капибара" Кузнецов
In reply to Maxim Afanasev
Да, именно. Если точнее, то декорируется не вызов, а объект функции
Я бы все таки сказал, что именно объявление, так ка декоратор срабатывает именно при объявлении, фактически расширяя его
09:03:45
@telegram_145428536:t2bot.ioAleksey Nakoryakov
In reply to Виктор "Капибара" Кузнецов
Вот если это принять, то становится понятнее. То есть декоратор не декорируют функцию как таковую, он декорирует ее объявление
Для простоты понимай вот как:
@decorator
def func():
    pass

То же самое, что на уровне модуля
func = decorator(func)
09:07:01
@telegram_145428536:t2bot.ioAleksey Nakoryakov * Для простоты понимай вот как:
@decorator
def func():
    pass

То же самое, что на уровне модуля
func = decorator(func)

Соответственно, вычисляется в момент импорта
09:07:36
@telegram_145428536:t2bot.ioAleksey Nakoryakov * Для простоты понимай вот как:
@decorator
def func():
    pass

То же самое, что на уровне модуля
func = decorator(func)

Соответственно, выполняется в момент импорта
09:07:46
@telegram_145428536:t2bot.ioAleksey Nakoryakov * Для простоты понимания:
@decorator
def func():
    pass

То же самое, что на уровне модуля
func = decorator(func)

Соответственно, выполняется в момент импорта
09:08:12
@telegram_382093249:t2bot.ioMaxim Afanasev
In reply to Виктор "Капибара" Кузнецов
Я бы все таки сказал, что именно объявление, так ка декоратор срабатывает именно при объявлении, фактически расширяя его
Будет проще, если принять динамическую природу Python. Всё, включая функции, классы и даже модули существует в рантайме, это просто объекты. И интерпретация кода - это по большей части создание этих объектов, по очереди, в порядке записи. Есть мелкие исключения, когда Python хитрит, но заглядывая внутрь функций для оптимизации замыканий, но основная идея именно в том, что всё в Python - это объекты создаваемые в рантайме
09:08:14
@telegram_382093249:t2bot.ioMaxim Afanasev* Будет проще, если принять динамическую природу Python. Всё, включая функции, классы и даже модули существует в рантайме, это просто объекты. И интерпретация кода - это по большей части создание этих объектов, по очереди, в порядке записи. Есть мелкие исключения, когда Python хитрит, заглядывая внутрь функций для оптимизации замыканий, но основная идея именно в том, что всё в Python - это объекты создаваемые в рантайме09:09:17
@telegram_421715417:t2bot.ioВиктор "Капибара" Кузнецов
In reply to Maxim Afanasev
Будет проще, если принять динамическую природу Python. Всё, включая функции, классы и даже модули существует в рантайме, это просто объекты. И интерпретация кода - это по большей части создание этих объектов, по очереди, в порядке записи. Есть мелкие исключения, когда Python хитрит, но заглядывая внутрь функций для оптимизации замыканий, но основная идея именно в том, что всё в Python - это объекты создаваемые в рантайме
Не, это понятно, тут скорее именно проблема была в понимании, как именно работает декоратор
09:12:48
@telegram_220733798:t2bot.ioDmitriy Krasilnikov changed their display name from Dmitriy Krasilnikov (Telegram) to Dmitriy Krasilnikov.10:08:51
@telegram_220733798:t2bot.ioDmitriy Krasilnikov changed their profile picture.10:08:52
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.10:25:22
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.10:25:23
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.10:25:24
@telegram_751069633:t2bot.ioꌚꁲꋪꂦꀭꁲꋊ changed their profile picture.11:58:00
@telegram_871151082:t2bot.ioPavel Tws joined the room.12:06:07
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.12:13:54
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.12:13:54
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.12:13:55
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.12:14:54
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.12:14:54
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.12:14:55
@telegram_167941047:t2bot.ioAlexander Ilyushkinimage.jpeg
Download image.jpeg
12:47:09
@telegram_167941047:t2bot.ioAlexander Ilyushkin Можно почитать сорцы питона ,они стати выглядят даже довольно приятно.
Насколько я понял, аннотации над классом и методом превращаются в соответствующий AST, только в функциональном виде
https://github.com/python/cpython/blob/6ca9d3e0173c38e2eac50367b187d4c1d43f9892/Python/compile.c#L2368

Об этом же написано в документации https://docs.python.org/3/reference/compound_stmts.html#function-definitions
12:47:09
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.13:21:13
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.13:21:14
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.13:21:15
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.15:07:39
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.15:07:39
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.15:07:40

There are no newer messages yet.


Back to Room ListRoom Version: