Bessere Python-Liste Benennung Anders als "Liste"

8

Ist es besser, keine Listenvariablen "liste" zu nennen? Da es im Konflikt mit dem reservierten Python-Schlüsselwort steht. Was ist dann die bessere Benennung? "input_list" hört sich irgendwie peinlich an.

Ich weiß, dass es problemspezifisch sein kann, aber, sagen wir, habe ich eine schnelle Sortierfunktion, dann ist quick_sort (unsortierte_liste) immer noch etwas lang, da die an die Sortierfunktion übergebene Liste vom Kontext eindeutig unsortiert ist.

Irgendeine Idee?

    
clwen 16.10.2011, 14:57
quelle

7 Antworten

17

Ich nenne es gerne mit dem Plural von allem, was darin ist. Also, zum Beispiel, wenn ich eine Liste von Namen habe, nenne ich es names , und dann kann ich schreiben:

%Vor%

was ich denke, sieht ziemlich gut aus. Aber im Allgemeinen sollten Sie für Ihre eigene Gesundheit Ihre Variablen benennen, damit Sie wissen, was sie gerade von dem Namen sind. Diese Konvention hat den zusätzlichen Vorteil, dass sie typenunabhängig ist, genau wie Python selbst, denn names kann jedes iterierbare Objekt sein, wie ein Tupel, ein Dict oder Ihr eigenes benutzerdefiniertes (iterierbares) Objekt. Sie können for name in names für jeden von diesen verwenden, und wenn Sie ein Tupel namens names_list hätten, wäre das nur komisch.

(Hinzugefügt von einem Kommentar unten :) Es gibt ein paar Situationen, in denen Sie dies nicht tun müssen. Die Verwendung einer kanonischen Variable wie i zum Indizieren einer kurzen Schleife ist OK, weil i normalerweise auf diese Weise verwendet wird. Wenn Ihre Variable auf mehr als einer Seite Code verwendet wird, so dass Sie nicht ihre gesamte Lebensdauer auf einmal sehen können, sollten Sie einen sinnvollen Namen geben.

    
andronikus 16.10.2011, 15:00
quelle
6
%Vor%

Variablennamen sollten angeben, was sie nicht genau sind, welcher Typ sie sind.

    
Jakob Bowyer 16.10.2011 15:00
quelle
5

Python steht für Lesbarkeit. Im Grunde sollten Sie Variablen benennen, die die Lesbarkeit fördern. Siehe PEP20 .
Sie sollten nur eine allgemeine Regel der Konsistenz haben und diese Konsistenz in der folgende Situationen:

  1. Wenn Sie die Regel anwenden, wird der Code weniger lesbar, sogar für     jemand, der daran gewöhnt ist, Code zu lesen, der den Regeln folgt.

  2. Um mit dem umgebenden Code konsistent zu sein, der es auch bricht (vielleicht für     historische Gründe) - obwohl dies auch eine Gelegenheit ist, aufzuräumen     jemand anderes Chaos (im echten XP-Stil)

Verwenden Sie auch die Benennungsregeln der Funktion: Kleinbuchstaben mit durch Unterstriche getrennten Wörtern, um die Lesbarkeit zu verbessern.
All dies stammt aus PEP 8

    
Lelouch Lamperouge 16.10.2011 15:10
quelle
1

Warum nicht einfach unsorted verwenden? Ich bevorzuge Namen, die Ideen und keine Datentypen kommunizieren. Es gibt spezielle Fälle, in denen der Typ einer Variablen wichtig ist. Aber in den meisten Fällen ist es aus dem Kontext offensichtlich - wie in Ihrem Fall. Schnellsortierung arbeitet offensichtlich an einer Liste.

    
Achim 16.10.2011 15:02
quelle
1

Was ist mit L ?

    
ovgolovin 16.10.2011 15:02
quelle
1

Ich verwende eine Namenskonvention basierend auf beschreibendem Namen und Typ. (Ich glaube, ich habe das von einem Jeff Atwood Blogpost erfahren, aber ich kann es nicht finden.)

%Vor%

usw.

Etwas komplizierter (list_list_hash_list) Ich mache eine Klasse.

    
David Poole 16.10.2011 15:24
quelle
0

Verwenden Sie einfach lst oder seq (für die Sequenz)

    
Óscar López 16.10.2011 15:01
quelle

Tags und Links