Допустим, у меня есть функция, как это:объектов класса скачков при назначении функции
def id(x): return x
я ожидаю, чтобы быть в состоянии связать его с любым объектом (скажем, х),
x.f = id
и быть в состоянии сделать
x.f(1) => 1
Однако классы не являются постоянными объектами becau се это не работает:
class X(object): pass X.f = id x.f(1) => unbound method f() must be called with X instance as first argument (got int instance instead)
Так что я должен сделать,
X.f=staticmethod(id) X.f(1) => 1
Однако он не работает с обычными объектами,
x.f=staticmethod(f) x.f(1) => 'staticmethod' object is not callable
Так есть способ имеют работу назначения, как ожидалось, в общем коде, где Я не знаю, является ли назначенный объект регулярным объектом объекта класса и когда назначенный объект может быть функционалом ион?
Вы не должны переопределять встроенный метод 'id()'. – robert
«Я ожидаю, что смогу привязать его к любому объекту» Действительно? Зачем? Любая ссылка или цитата, которая задала бы это ожидание? –