Я пытаюсь сделать следующее в python:
В файле с именем foo.py:
# simple function that does something:
def myFunction(a,b,c):
print "call to myFunction:",a,b,c
# class used to store some data:
class data:
fn = None
# assign function to the class for storage.
data.fn = myFunction
И затем в файле bar.py: import foo
d = foo.data
d.fn(1,2,3)
Однако я получаю следующую ошибку:
TypeError: unbound метод f() должен быть вызван с экземпляром данных в качестве первого аргумента (вместо этого используется int int)
Это справедливо, я полагаю, python рассматривает метод d.myFunction как метод класса. Тем не менее, я хочу, чтобы он рассматривал его как нормальную функцию, поэтому я могу назвать это, не добавляя неиспользуемый параметр "self" в определение myFunction.
Итак, вопрос:
Как сохранить функцию в объекте класса без привязки функции к этому классу?