FTL
return wrapper ?
Tishka17
FTL
есть такое
Tishka17
Ты вместо возврата функции вернул результат выполнения
FTL
Понял
FTL
То есть вывод из всего этого такой, что мне нужно декоратор отдельно, не в классе реализовать, да?
Tishka17
Скорее всего да
FTL
Всё, тогда сяп ^^
Tishka17
То есть я могу придумать как это обойти, но скорее всего это никому не нужно
FTL
Ну если это красивая реализация, то я бы посмотрел
Tishka17
class A: def x(f): def inner(self): return 'oops' return inner @x def y(self): return "hello" a=A() print(a.y())
Anonymous
что я делаю не так
Tishka17
Но так делать не стоит
FTL
Кайф
Tishka17
Или добавить del x в конце, чтобы не добавился в класс
Tishka17
Ооо
ТАК ДЕЛАТЬ НЕЛЬЗЯ
FTL
Ничево не слышу
Tishka17
Посмотрели, подумали почему это так сработало и забыли
FTL
Работает и ладно
Tishka17
Ничево не слышу
Попробуй тебе a.x применить кудато
Tishka17
Не работает
FTL
Tishka17
То есть кое-что что сделало, но если копнуть дальше - не работает
Tishka17
Вынеси декоратор из класса
FTL
Вынеси декоратор из класса
То, что предлагал @cutwater
Alex
То, что предлагал @cutwater
Я намеренно не стал показывать то что показал Тишка
FTL
Прекрасный способ, мне все нрав
FTL
А еще мне в C# нрав bool a = True; while (a.toString().Length() == 4){ ... a = false; }
Tishka17
Ты вообще знаешь почему это работает?
Tishka17
Это тут при чём?
FTL
Ниче, просто намекнул что люблю легаси и говно
FTL
Потому что ты во враппер закинул self
Tishka17
Вот поэтому
Tishka17
Методы в классе создаются после выполнения всего определения класса. То есть в процессе его создания все функции ещё не стали методами
Tishka17
Пока класс не создался - это просто функции. Потом они становятся методами класса
Tishka17
Соответственно, пока идёт создание класса, они работают как обычные функции, а потом ожидается что первый параметр - self
Tishka17
Соответственно из-за этого - мой код - костыли и хрень
FTL
В какой момент создается класс? a = class() в этот?
Alex
В какой момент создается класс? a = class() в этот?
нет, не путай создание класса и создание инстанса класса.
FTL
Из головы вылетело слово дубликат
Alex
Ок, а когда класс то создается?
когда интерпретатор выполняет код класса.
FTL
Лады
Alex
т.е. например после class Foo: …
Tishka17
не совсем так. функции даже после создания класса это всего лишь функции.
Ну я имел ввиду, что потом ты к ней обращаешься через класс и туда начинает передаваться ссылка на класс например
Tishka17
Окей. Если через экземпляр, будет
Tishka17
Я чёт думал и так
Tishka17
Сорри
Tishka17
Это для класс методов будет
Alex
в тройке (не помню с какой версии) избавились от unbound методов
Tishka17
Угу
Alex
теперь это обычные функции
Alex
классметод \ статик метод позволяют одинаково работать в случае вызова метода как у класса так и у экземпляра класса.
Tishka17
Угу
Aragaer
>>> class A: ... def f(self): ... print(self) ... >>> x = A() >>> A.f(x) <__main__.A object at 0x7f5a9b8d9240>
Alex
что ты несешь?
Aragaer
x.f это bound метод, A.f - unbound
Alex
нет
Alex
A.f - это функция
Aragaer
значит я не понимаю терминологию
Aragaer
хм
Aragaer
а, понял
Aragaer
а чем анбаунд методы отличались от фукнций?
Alex
конкретно тем что это специальный тип, который хранил ссылку на функцию, ссылку на класс и мог хранить ссылку на объект (self)
Александр
Привет всем вопрос можно по теме веб дизайну?
Александр
Нельзя
Почему
Андрей
Почему
Потому что чат по питону.
Александр
Понял. Спс