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?
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.
Sie könnten ein Problem für den Programmierer sein. Halten Sie die Funktionsnamen relativ kurz und verwenden Sie Docstrings, um sie zu dokumentieren.
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.
Tags und Links python python-2.7