Was ist die maximale Länge für einen Attributnamen in Python?

7

Ich schreibe eine Reihe von Python-Funktionen, die eine Art von Konformitätsprüfung für ein Quellcode-Projekt durchführen. Ich würde gerne ziemlich ausführliche Namen für diese Funktionen angeben, z. B .: check_5_theVersionOfAllVPropsMatchesTheVersionOfTheAutolinkHeader()

Könnten solche übermäßig langen Namen ein Problem für Python sein? Gibt es eine maximale Länge für Attributnamen?

    
Alexander Tobias Bockstaller 04.06.2013, 14:46
quelle

3 Antworten

25

2.3. Bezeichner und Schlüsselwörter von The Python Language Reference:

  

Bezeichner sind unbegrenzt lang.

Aber Sie werden höchstwahrscheinlich gegen PEP-8 verstoßen. Das ist nicht wirklich cool:

  

Begrenzen Sie alle Zeilen auf maximal 79 Zeichen.

Sie verletzen auch PEP-20 (das Zen von Python):

  

Lesbarkeit zählt.

    
kirelagin 04.06.2013, 14:48
quelle
4

Sie könnten ein Problem für den Programmierer sein. Halten Sie die Funktionsnamen relativ kurz und verwenden Sie Docstrings, um sie zu dokumentieren.

    
Ignacio Vazquez-Abrams 04.06.2013 14:48
quelle
2

Da Attributnamen nur für 99% der Klassen, die Sie jemals treffen werden, in Schlüssel auf inst.__dict__ gehackt und umgewandelt werden, gibt es keine wirkliche Begrenzung für die Länge. Solange es hashbar ist, funktioniert es als Attributname. Für die anderen 1% der Klassen, die mit __setattr__ \ __getattr__ \ __getattribute__ so verfahren, dass die Garantie, dass alles was hashable ist, ein gültiger Attributname ist, gilt die vorherige nicht.

Natürlich haben Sie, wie andere bereits gesagt haben, Probleme mit Codestil und Qualität mit länger benannten Attributen. Wenn Sie feststellen, dass Sie so lange Namen benötigen, ist dies wahrscheinlich ein Hinweis auf einen Konstruktionsfehler in Ihrem Programm, und Sie sollten wahrscheinlich darauf achten, dass Ihre Daten hierarchischer strukturiert sind und Verantwortlichkeiten in Ihren Funktionen und Methoden besser abstrahieren und teilen.

    
Silas Ray 04.06.2013 14:51
quelle

Tags und Links