Ich bin verwirrt über die Auswahl von Namen für meine Funktionen in Python . Manchmal sind in Python integrierte Funktionen unerlässlich, z. B.: printFunktion und Zeichenfolgenmethode find. Manchmal sind sie nicht so wie: Der lenName ist nicht zwingend wie calculate_lenzum Beispiel und typeist es auch nicht find_type.
Ich kann verstehen, dass printein Wert zurückgegeben wird, den wir nicht verwenden (dh None) und etwas tut (dh es wird eine Zeichenfolge auf dem Bildschirm angezeigt), daher ist sein Name unbedingt erforderlich.
Aber lengibt einen Wert , dass wir verwenden und tut etwas (dh die Berechnung , wie viele Elemente gibt es in einer Sequenz oder einer Abbildung.) Und sein Name ist nicht zwingend notwendig . Andererseits gibt die findZeichenfolgenmethode (as len) einen Wert zurück, den wir verwenden, und führt etwas aus. Der Name ist unbedingt erforderlich .
Was diese Frage gestellt hat, ist, dass ich ein Skript, das Zeichenfolgen mit Caesar-Chiffre verschlüsselt und entschlüsselt, überprüft habe. Der Rezensent sagte, dass:
Nur ein Bauchgefühl: Funktionen machen Sachen. Ein guter Name für eine Funktion ist daher ein Muss: Ich würde
rotate_letterstattdessen verwendenrotated_letter.
rotated_letterGibt eine Zeichenfolge mit einem Buchstaben zurück, die einen Buchstaben darstellt, der um eine Zahl gedreht wurde. Ich weiß nicht, was besser ist, ich habe es verwendet, rotated_letterda es einen Wert zurückgibt, wie eine randintFunktion im Zufallsmodul , ist es nicht generate_randint.
Wie soll ich in diesem Fall eine Funktion benennen, die einen zu verwendenden Wert zurückgibt? Soll ich den Namen machen Imperativ oder einfach nur ein Substantiv . In anderen Fällen ist es offensichtlich, wie es geht, wie z. B. boolesche Funktionen , wie is_evenund is_palindromewir machen es einfach wie eine Ja / Nein-Frage , und auch Funktionen, die nur nicht verwendete Werte (dh None) ausführen und zurückgeben , wie z. B. eine printListenmethode sort.
lenwird beispielsweise besser als "Länge von" betrachtet - Sie erhalten eine Beschreibung des Arguments auf Metaebene.