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