1
Pointant la méthode de classe à la méthode d'instance est à l'origine clairement les problèmes:définitions de fonction Rediriger en python
class A(dict):
def __getitem__(self, name):
return dict.__getitem__(self, name)
class B(object):
def __init__(self):
self.a = A()
B.__getitem__ = self.a.__getitem__
b1 = B()
b1.a['a'] = 5
b2 = B()
b2.a['b'] = 10
c = b1['a']
d = b2['b']
donne cette erreur:
File ... in __getitem__
return dict.__getitem__(self, name)
KeyError: 'a'
Que dois-je faire ici à la place?
Êtes-vous essayer de définir une fonction de la méthode sans utiliser def ? Pourquoi? Quel est le problème avec def? –
Ce n'est pas dynamique? Supposons que, de même que __getitem__, j'ai eu 20 autres méthodes - je devrais redéfinir chaque méthode. (Je ne fais pas ça, je suis simplement intrigué de savoir quelles sont les autres façons de déclarer les fonctions). – Dan