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

33 просмотра

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

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
14
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта