J'ai une série de classes que je vais enregistrer en tant que services à une classe d'abstraction de plus haut niveau. La classe de haut niveau aura une fonction qui obtient la classe de niveau inférieur basée sur init args, etc. Est-ce que cela sonne berserk? Aussi, comment s'appelle-t-il? Je l'appelle usine fonction/classe, mais je n'ai vraiment aucune idée (ce qui rend plus difficile pour les meilleures pratiques de Google).Python - question sur les fonctions d'usine
0
A
Répondre
2
C'est ce qu'on appelle la «programmation de la métaclasse». Dans les versions récentes de Python, il est implémenté en définissant la méthode statique __new__()
et en renvoyant un objet du type approprié.
class C(object):
def __new__(cls, val):
if val == 5:
return 'five'
else:
return super(C, cls).__new__(cls)
c1 = C(3)
print c1
c2 = C(5)
print c2