Supposons que nous avons une classefaçon Pythonic de gérer les appels longue méthode des classes à l'intérieur
class foo():
def __init__(self):
self.data = 10
...
def method(self):
...
self.free_indices.append(self.l[self.start_p])
var1 = self.l[self.search(var2[num])].pointer
...
On voit clairement que la méthode et l'attribut appels au sein de la classe est trop long et donc la lisibilité des codes diminue. Pour résoudre ce problème on pourrait créer une paire de méthodes
def get_some_att(self, var2, num):
return self.l[self.search(var2[num])].pointer
def append_index(self):
self.free_indices.append(self.l[self.start_p])
qui, au premier coup d'œil semble raisonnable, mais supposons que vous avez une douzaine de ces appels différents, alors qu'allez-vous faire? Voulez-vous créer une douzaine de méthodes get_some_att
et donc diminuer la vitesse d'exécution globale d'une quantité spectaculaire. Ou allez-vous heureusement oublier tous les appels pour augmenter la vitesse, mais faire des compromis sur la lisibilité. Alors, quelle est la vraie façon de gérer ce genre de dilemmes avec pythonic ™?
Comment est 'self.get_some_att (self.data) 'plus lisible que' self.some_att [self.data] '? – Barmar
Vous avez raison. Ce fut un mauvais exemple, je vais changer pour un plus pertinent. –
Peut-être que vous cherchez des getters et setters de propriété? https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters – Barmar