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 ответов

37 просмотров

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

👑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__ итоговой функции)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта