-
К примеру есть класс, который при инициализации принимает инстанс некой функции. Я хочу потом из одного из методов класса эту функцию вызывать и не передавать в нее инстанс самого класса. Как мне эту функцию внутри класса хранить и как вызывать?
Вот примерно так я себе это представлял, но оно, понятно, так не работает:class SomeClass():
def __init__(self, function):
self.function = function
def someMethod(self, some_data):
self.data = self.function(some_data) -
Вот примерно так я себе это представлял, но оно, понятно, так не работает:
Вам понятно? Расскажите почему "так не работает".
-
Смутило, что в эклипсовом дебаггере ее не видно.
-
Без декораторов не обойтись.
Вместо self.function = function
пишем
Выглядит коряво, конечно.self.function = staticmethod(function).__get__(self)
...
def foo(x):
print x
return x
x = SomeClass(foo)
x.someMethod(5)
print x.data
print x.function -
Смутило, что в эклипсовом дебаггере ее не видно.
А с каких пор Эклипсовый дебагер отвечает за работу кода?:-)
В общем суть в том, что код вполне нормальный. Не понятно почему у вас это вызвало затруднения.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

