Warum sind viele Namen nicht PEP8 konform?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo,

einfach mal interessehalber: Weiß jemand, weshalb viele Klassen- und Funktionsnamen innerhalb Pythonmodulen nicht PEP8 konform sind?

z. B.
datetime.datetime :: datetime.DateTime
collections.defaultdict :: collections.DefaultDict
collections.namedtuple :: collections.named_tuple

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

mutetella hat geschrieben: einfach mal interessehalber: Weiß jemand, weshalb viele Klassen- und Funktionsnamen innerhalb Pythonmodulen nicht PEP8 konform sind?
Das dürfte an der historischen Entwicklung liegen. Ich weiß jetzt nicht, wie alt PEP8 wirklich ist; evtl. wurde das zu Beginn von Python noch nicht so strikt gesehen oder das ganze Proposal war noch nicht ausgereift?

In Python3 wurde da afair auch einiges aufgeräumt.

Bei Wrappern wie PyQt / PySide erlaubt PEP8 aber explizit Ausnahmen und die Orientierung am zugrunde liegenden Framework. (dort mixedCase() bei Methodennamen)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

die PEP 8 gibt ja auch indirekt die Antwort. :-)

In der Einleitung steht, wann man mit den Konventionen brechen kann /darf. Unter "Naming Conventions" steht wörtlich "The naming conventions of Python's library are a bit of a mess, so we'll never get this completely consistent...".

ich denke auch, dass es so ist, wie Hyperion sagt - das Alter spielt eine Rolle. Bei ReportLab fällt mir das auch immer wieder aus. Da sind aber auch viele Module älteren Datums.

Gruß, noisefloor
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mutetella hat geschrieben:collections.defaultdict :: collections.DefaultDict
collections.namedtuple :: collections.named_tuple
Diese beiden sind deutlich neuer als PEP8, also zählt die "historisch gewachsen"-Ausrede nicht. Ich nehme einfach an, dass man sich da an den eingebauten Typen "dict" und "tuple" orientiert hat, die ebenfalls in Kleinbuchstaben sind.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten