class Adapteur(object):
cls = None
def __init__(self, objet):
self.objet = objet
@classmethod
def peut_adapter(cls, objet):
return cls == type(objet)
]]> adapteurs = (
(PersonneAdapteur, [les paramètres]),
(ClientAdapteur, [les paramètres]),
(ProspectAdapteur, [les paramètres]),
(LeClientAdapteur, [les paramètres]),
)
Et faire un truc comme ça à l’instanciation :
class VerificateurDeMajorite(object):
def check_majorite(self, personne):
for adapteur, params in self.adapteurs:
if adapteur.peut_adapter(personne):
return adapteur(personne, *params).majeur
]]>class Videur(VerificateurDeMajorite):
adapteurs = (
PersonneAdapteur,
ClientAdapteur,
ProspectAdapteur,
LeClientAdapteur,
)
Et NON:
class Videur(VerificateurDeMajorite):
adapteurs = (
PersonneAdapteur(),
ClientAdapteur(),
ProspectAdapteur(),
LeClientAdapteur(),
)
C’est corrigé.
]]> adapteurs = (
PersonneAdapteur(),
ClientAdapteur(),
ProspectAdapteur(),
LeClientAdapteur(),
)
Traceback (most recent call last):
File “/home/workspace/tutorial-python/main.py”, line 115, in
class Videur(VerificateurDeMajorite):
File “/home/workspace/tutorial-python/main.py”, line 118, in Videur
PersonneAdapteur(),
TypeError: __init__() takes exactly 2 arguments (1 given)
Peux tu apporter plus de précisions?
]]>