Рассмотрим этот код:
class SomeClass:
def __init__(self, i):
self.i = i
def some_method(self):
def returned_method(self, new_i):
self.i = new_i
return returned_method
some_obj = SomeClass(5)
some_obj.some_method()(6)
print(some_obj.i)
Это заканчивается исключением :
Traceback (most recent call last):
File "./prog.py", line 11, in <module>
TypeError: returned_method() missing 1 required positional argument: 'new_i'
Очевидно, что метод, возвращаемый some_method
, не связан.Он не получает some_obj
в качестве первого аргумента.
Как связать returned_method
в some_method
с self
?