p
Size: a a a
p
EG
>>> 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
EG
bind(2, add)
создаёт ad-hoc метод add для двойкиSP
EG
EG
p
SP
SP
EG
SP
EG
@classmethod
, лолSP
EG
Self
называется @classmethod
и получает Self
первым аргументомp
p
EG
>>> 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
p