170 похожих чатов

А можно ли за манкипатчить метод класса, у уже созданного

объекта? я попробовал в лоб

x.phase1=zphase1
x.phase1()
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: zphase1() missing 1 required positional argument: 'self'
x.phase1
<function zphase1 at 0x7f57e43d70d0>

но как видно ничего не вышло и мне не понятно почему

18 ответов

12 просмотров

ну так переведи ошибку ебаный сыр

👑OGURCHIK🖤
ну так переведи ошибку ебаный сыр

даже огурчинский юзает пичарм делаем выводы

👑OGURCHIK🖤
ща в бан улетишь

а че? я помню твой скрин из диспетчера задач уахахаух

Kino Recovery- Автор вопроса
👑OGURCHIK🖤
ну так переведи ошибку ебаный сыр

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

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

Kino Recovery
ясно, что в метод хочет self. другой вопрос почем...

как раз передают. почитай ошибку , что у тебя выскочила

Kino Recovery- Автор вопроса
Andrei Kisel
можно. но подумай почему ошибка) первым аргументом...

ну, я больше чем уверен, что если я сделаю вот так x.phase1(x), то у меня всё сработает, но так как это функция внутри пайплайна, то так мне вообще не нравиться

Kino Recovery
ну, я больше чем уверен, что если я сделаю вот так...

что за херня? что чем ты запатчить хочешь? o.m = partial(newm, o) вот так это патчится

Всё ж логично: вызов x.phase1() аналогичен type(X).phase1.__get__(x, type(X))() аналогичен partial(type(X).phase1, x)()

Dm Anti
Всё ж логично: вызов x.phase1() аналогичен type(X)...

Если phase1 не дескриптор, у него не будет метода __get__.

Dm Anti
Всё ж логично: вызов x.phase1() аналогичен type(X)...

А здесь по-другому работает - a.print_hello() и A.print_hello.__get__(a, A)() дают разный результат: In [104]: class A: ...: def print_hello(self): ...: print("hello") ...: In [105]: a = A() In [106]: a.print_hello() hello In [107]: def print_goodbye(): print("goodbye") In [108]: a.print_hello = print_goodbye In [109]: a.print_hello() goodbye In [110]: A.print_hello.__get__(a, A)() hello

evgeniy
А здесь по-другому работает - a.print_hello() и A....

mro же, класс A не знает о том что у его экземпляра перезаписан атрибут

Dm Anti
mro же, класс A не знает о том что у его экземпляр...

Это означает, что a.print_hello() как-то по-другому находит атрибут print_hello у объекта a. Не A.print_hello.__get__(a, A), потому что тогда результат был бы одинаковый. Видимо, проверяет сначала __dict__ объекта a. Сейчас гляну дебаггером.

evgeniy
Это означает, что a.print_hello() как-то по-другом...

Когда вызывается метод не перезаписанный в явном виде (берущийся от класса) с методом происходит все тоже самое что и с property где fget это функция которая биндит экземпляр к функции (сохраняет в атрибут __self__ итоговой функции)

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
I just installed it but how do I use it?
Talula
12
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
Карта сайта