Je suis en train de faire ce qui suit en python:stockage fonctions python non liées dans un objet de classe
Dans un fichier appelé 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
Et puis dans un fichier appelé bar.py : import foo
d = foo.data
d.fn(1,2,3)
Cependant, je reçois l'erreur suivante:
TypeError: unbound method f() must be called with data instance as first argument (got int instance instead)
Cela est assez juste je suppose - python traite d.myFunction comme une méthode de classe. Cependant, je veux le traiter comme une fonction normale - donc je peux l'appeler sans avoir à ajouter un paramètre 'self' inutilisé à la définition de myFunction.
La question est:
Comment puis-je enregistrer une fonction dans un objet de classe sans la fonction d'être liés à cette classe?
Je pense que vous avez l'intention d'utiliser: d.fn (1,2,3) et pas d.myFunctions (1,2,3) –
oui, je pense que vous vouliez dire d.fn() – hop
La solution est ci-dessous, mais pourquoi voudriez-vous cela? – orip