Lors de la conception des cours, je l'ai trouvé difficile à placer des valeurs d'argument par défaut dans la méthode __init__
, comme dans:Est-il considéré comme une bonne pratique d'utiliser ** kwargs de manière prolifique pour améliorer la lisibilité?
class Class1(object):
def __init__(self, y=2, z=3):
self.y = self.manip_y(y)
self.z = self.manip_z(z)
def manip_y(self, y):
return y * 10
def manip_z(self, z):
return z - 30
Est-il considéré comme une meilleure pratique d'ajouter **kwargs
pour fonctionner des signatures pour placer les valeurs par défaut dans les signatures de fonction comme bien ?:
class Class2(object):
def __init__(self, **kwargs):
self.y = self.manip_y(**kwargs)
self.z = self.manip_z(**kwargs)
def manip_y(self, y=2, **kwargs):
return y * 10
def manip_z(self, z=3, **kwargs):
return z - 30
Que trouvez-vous gênant à propos de votre premier exemple? – BrenBarn
Il n'est pas clair ce que vous essayez d'atteindre - pourquoi, par exemple, 'manip_y' est une méthode d'instance publique? Sera-t-il jamais appelé de l'extérieur de '__init__'? – jonrsharpe
Comment "utiliser kwargs de manière prolifique" * aide * la lisibilité? Bien que ce ne soit pas toujours le cas, l'exemple montré avec kwargs est un peu plus difficile à suivre. – user2864740