Angenommen, wir haben eine KlassePythonic Art und Weise lange Verfahren zur Handhabung ruft innerhalb von Klassen
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
...
Es ist deutlich, dass das Verfahren und die Anrufe Attribut gesehen wird innerhalb der Klasse zu lang ist und damit die Lesbarkeit des Codes abnimmt. Um dies zu beheben, dass man ein Paar von Methoden
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])
die auf den ersten Blick vernünftig erscheint schaffen könnte, aber Angenommen, Sie haben ein Dutzend solcher verschiedenen Anrufe, also was werden Sie tun? Werden Sie ein Dutzend get_some_att
Methoden erstellen und damit die Ausführungsgeschwindigkeit insgesamt dramatisch reduzieren. Oder werden Sie gerne alle Anrufe vergessen, um die Geschwindigkeit zu erhöhen, aber Kompromisse bei der Lesbarkeit machen. Was also ist der wahre Python ™ ™ - Weg, um mit solchen Dilemmata umzugehen?
Wie ist 'self.get_some_att (self.data) 'lesbarer als' self.some_att [self.data] '? – Barmar
Sie haben Recht. Das war ein schlechtes Beispiel, ich werde zu einem relevanteren wechseln. –
Vielleicht, was Sie suchen, sind Immobilien Getters und Setter? https://stackoverflow.com/questions/2627002/whats-the-pythonic-way-to-use-getters-and-setters – Barmar