2015-01-15 14 views
8

Ich lese PEP 8 für zu wissen, ob (ein imaginäres) ich ein Objekt mit einem Namen wie __foo__ erstellen ist eine gute Idee oder nicht. PEP 8 sagt das über __double_leading_and_trailing_underscore__:"Erfinden Sie niemals solche Namen; verwenden Sie sie nur wie dokumentiert." Wer?

Erfinden Sie nie solche Namen; verwende sie nur wie dokumentiert.

Meine Frage ist: Wer?

Ich bin ein Programmierer. Ich schreibe eine API für andere Programmierer. Python wurde von Programmierern implementiert. Die Sprachreferenz für die Implementierung wurde von Programmierern oder zumindest Ex-Programmierern geschrieben, und die Programmierer, die meine API verwenden, schreiben etwas, das von weiteren Programmierern verwendet werden kann oder auch nicht.

Jetzt ist das aufgeklappt, von welchem ​​Programmierer spricht PEP 8, wenn sie sagen: "Erfinden Sie nie solche Namen"?

Jemand ist offensichtlich ermutigt, solche Namen zu erfinden, da sie existieren, während andere dazu nicht eingeladen sind.

Welche Gruppe von Programmierern sollte "Niemals solche Namen erfinden"?

Antwort

11

Sie verwenden solche Namen in Ihrer APIs entmutigt, ja, denn ob und wann die Python Kern-Entwickler den gleichen Namen für Python selbst holen, werden Sie verlieren, Ihre API brechen kann.

Wenn Sie also kein Python-Core-Entwickler sind oder ein PEP schreiben, das eines Tages Teil der Python-Standardbibliothek oder Kernsprachendefinition wird, versuchen Sie, in Ihrer API die Verwendung von Donnernamen zu vermeiden.