Size: a a a

2020 December 02

R

Rubikoid in #ctfchat
falamous starstrider
>>> class A():
...     def m(self):
...             print("1")
...
>>> a = A()
>>> a.m()
1
>>> A.m = lambda self : print("2")
>>> a.m()
2
зато можно так
Дурка, блин.
Ну, что так можно - логичное, изменение дикта в самом классе меняет и дикты во всех инстансах
источник

R

Rubikoid in #ctfchat
Мне рил интересно, начерта они это сделали, когда можно было обойтись просто трансляцией вызова a.f в A.f(a)
источник

R

Rubikoid in #ctfchat
falamous starstrider
>>> class A():
...     def m(self):
...             print("1")
...
>>> a = A()
>>> a.m()
1
>>> A.m = lambda self : print("2")
>>> a.m()
2
зато можно так
Кстати, если в инстансе завраппить функу через какой-нибудь partial, можно в теории задоджить перезапись функи в самом классе
источник

fs

falamous starstrider in #ctfchat
Rubikoid
Мне рил интересно, начерта они это сделали, когда можно было обойтись просто трансляцией вызова a.f в A.f(a)
на уровне компиляции?
источник

R

Rubikoid in #ctfchat
falamous starstrider
на уровне компиляции?
Да хотя бы при вызове
источник

R

Rubikoid in #ctfchat
Создание объекта явно дольше этого варианта
источник

fs

falamous starstrider in #ctfchat
Rubikoid
Да хотя бы при вызове
ну архитектурно это звучит как гавно
источник

fs

falamous starstrider in #ctfchat
разное поведение для одних и тех же обьектов
источник

R

Rubikoid in #ctfchat
falamous starstrider
ну архитектурно это звучит как гавно
Архитектурно создание баунд функи на каждый вызов тоже звучит как говно
источник

fs

falamous starstrider in #ctfchat
не настолько как разное поведение для одного типа взаимодействия
источник

R

Rubikoid in #ctfchat
falamous starstrider
разное поведение для одних и тех же обьектов
Стоп, почему
источник

R

Rubikoid in #ctfchat
Можно это делать на этапе трансляции в JIT, и вызов метода будет просто синтаксическим сахаром
источник

fs

falamous starstrider in #ctfchat
ну потому что одинаковые вещи нужно делать одинаково
источник

fs

falamous starstrider in #ctfchat
Special cases aren't special enough to break the rules.
источник

fs

falamous starstrider in #ctfchat
ле дзен
источник

R

Rubikoid in #ctfchat
Ну и?
источник

fs

falamous starstrider in #ctfchat
а вообще так сделать нельзя
источник

fs

falamous starstrider in #ctfchat
как я понимаю
источник

fs

falamous starstrider in #ctfchat
потому что ты не знаешь что конкретно в данный момент в атрибуте
источник

fs

falamous starstrider in #ctfchat
у тебя же динамические классы
источник