У меня есть следующий код
import numpy as np
class Estimator(object):
name = None
def __init__(self):
self.__call__ = self._call
class Mean(Estimator):
name = 'mean'
def _call(self, data):
return np.mean(data)
data = np.arange(10)
теперь, почему я не могу использовать второй класс как функтор как первый?
Кажется, это работает:
M = Mean()
print M.__call__(data) # -> 4.5
M имеет метод __call__
:
print '__call__' in dir(M) # -> True
но это не работает
print M(data)
Я получил:
TypeError: 'Mean' object is not callable