Size: a a a

2021 April 08

p

polunin.ai in rust_offtopic
Это ж питон
источник

EG

Emmanuel Goldstein in rust_offtopic
Максимум можно типа вот так
>>> def bind(obj, func):
...     return func.__get__(obj)
...
>>> def add(x, y): return x + y
...
>>> add(2, 2)
4
>>> bind(2, add)(2)
4
источник

p

polunin.ai in rust_offtopic
А потом говорят что на питоне можно делать что угодно
источник

EG

Emmanuel Goldstein in rust_offtopic
bind(2, add) создаёт ad-hoc метод add для двойки
источник

SP

Stanislav Popov in rust_offtopic
на питоне даже супер без указания класса нельзя, не знаю как щас
источник

EG

Emmanuel Goldstein in rust_offtopic
Уже давно можно
источник

EG

Emmanuel Goldstein in rust_offtopic
Типа, с 3k
источник

p

polunin.ai in rust_offtopic
Да
источник

SP

Stanislav Popov in rust_offtopic
а, Self нельзя
источник

SP

Stanislav Popov in rust_offtopic
когда надо статический метод
источник

EG

Emmanuel Goldstein in rust_offtopic
Self тоже можно, но через жопу
источник

SP

Stanislav Popov in rust_offtopic
как кстати?
источник

EG

Emmanuel Goldstein in rust_offtopic
@classmethod, лол
источник

SP

Stanislav Popov in rust_offtopic
а обращаться к нему как внутри самого класса?
источник

EG

Emmanuel Goldstein in rust_offtopic
Статический метод с Self называется @classmethod и получает Self первым аргументом
источник

p

polunin.ai in rust_offtopic
Нахуй он кстати
источник

p

polunin.ai in rust_offtopic
Я пытался понять но не смог
источник

EG

Emmanuel Goldstein in rust_offtopic
>>> class A:
...     @classmethod
...     def foo(cls): print(cls)
...
>>> a = A()
>>> a.foo()
<class '__main__.A'>
>>> A.foo()
<class '__main__.A'>
>>> class B(A): pass
...
>>> B.foo()
<class '__main__.B'>
>>> B().foo()
<class '__main__.B'>
источник

EG

Emmanuel Goldstein in rust_offtopic
Например, для альтернативных конструкторов
источник

p

polunin.ai in rust_offtopic
Пиздец
источник