Ich bin verwirrt über die Auswahl von Namen für meine Funktionen in Python . Manchmal sind in Python integrierte Funktionen unerlässlich, z. B.: print
Funktion und Zeichenfolgenmethode find
. Manchmal sind sie nicht so wie: Der len
Name ist nicht zwingend wie calculate_len
zum Beispiel und type
ist es auch nicht find_type
.
Ich kann verstehen, dass print
ein 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 len
gibt 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 find
Zeichenfolgenmethode (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_letter
stattdessen verwendenrotated_letter
.
rotated_letter
Gibt 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_letter
da es einen Wert zurückgibt, wie eine randint
Funktion 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_even
und is_palindrome
wir 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 print
Listenmethode sort
.
len
wird beispielsweise besser als "Länge von" betrachtet - Sie erhalten eine Beschreibung des Arguments auf Metaebene.