[PYTHON] Anti-Muster mit variabler Benennung, die Anfänger normalerweise tun

Einführung

Wie Sie wissen, ist Python aufgrund seiner einfachen Schreibweise auch für Programmieranfänger als Sprache mit einem niedrigen Schwellenwert beliebt, und es gibt viele Leute, die sagen, dass die Sprache, in der sie neu sind, Python ist. Es gibt jedoch ein Anti-Pattern (verbotene Hand), das in einem solchen Python nicht ausgeführt werden sollte, und wenn ein Anfänger darauf tritt, ohne es zu wissen, wird es schwierig sein, damit umzugehen. Daher möchte ich einige der Python-Anti-Patterns vorstellen, die Anfängern besondere Aufmerksamkeit schenken sollten ** "Variablennamen" **, was besonders schwerwiegend ist ** Zuweisung per Definition einer Variablen mit demselben Namen **.

schlechtes Beispiel

Der folgende Code konvertiert den Inhalt der Tapple-Typvariablen "Tupel" in einen Listentyp und kombiniert ihn mit der Listentypvariablen "Liste". Auf den ersten Blick handelt es sich um eine normale Datenoperation, die jedoch nicht funktioniert. Ich bekomme eine Fehlermeldung.

>>> list = ["Apple", "Orange", "Grape"]
>>> tuple = ("Peach", "Strawberry")
>>> list.append(list(tuple))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable

Was war falsch?

Die Ursache ist in der ersten Zeile. Insgesamt verfügt Python über eine integrierte Standardfunktion namens "list ()", mit der Sie ein als Argument angegebenes iterierbares Objekt in einen Listentyp konvertieren können.

Der Inhalt von append () in der 3. Zeile, list (tuple), versucht diese Funktion aufzurufen, aber in der 1. Zeile habe ich eine Listenvariable mit dem Namen ** list definiert. Infolgedessen wurde das Referenzziel von "Liste" überschrieben. ** ** ** Also ** in diesem Code bezieht sich list jetzt auf die Variablen [" Apple "," Orange "," Grape "] anstelle der eingebauten Funktionlist ()**.

Leider kann die Funktion list () in diesem Code nie wieder verwendet werden, es sei denn, sie wird neu zugewiesen.

Gegenmaßnahmen

Es gibt andere Namen, die ähnlich stark veraltet sind, und "str", "list", "int", "dict", "id", "bool" usw. sind ebenfalls attraktiv als temporäre Variablen. Wenn Sie es jedoch tatsächlich definieren, ist es gefährlich, da Sie die gleichnamige Funktion zerstören. Verwenden Sie diese Namen niemals, auch wenn es sich um verlassenen Code handelt. Meine persönliche Empfehlung ist es daher, diese als Teil des Variablennamens als Suffix zu setzen. Im obigen Beispiel ist

list = ["Apple", "Orange", "Grape"]
tuple = ("Peach", "Strawberry")

,

fruits_list = ["Apple", "Orange", "Grape"]
fruits_tuple = ("Peach", "Strawberry")

Es wird empfohlen, ** und [generischer Name der Elemente in der Liste] _ [Datentyp] ** zu benennen, da Sie den Inhalt und den Typ der enthaltenen Daten leicht unterscheiden können.

Die Benennung sollte so eindeutig wie möglich sein

Es ist besser, Namen zu vermeiden, die Objekte mit demselben Namen sowie integrierte Funktionen enthalten.

Das Beispiel in dieser Zeit handelt von einer Funktion namens "list ()", aber ** Python hat die Eigenschaft, dass Sie alle Variablen außer reservierten Wörtern frei definieren und zuweisen können **. Wenn Sie nicht vorsichtig sind, können Sie Variablen oder überschreiben Da Sie den Zugriff auf die Funktion verlieren, sollten Sie die Variable ** "unübertroffene Benennung" ** so weit wie möglich beibehalten. Sie sollten sich nicht nur der Konflikte mit integrierten Standardfunktionen bewusst sein, sondern auch mit Methoden, die in Ihrem Code oder in importierten Paketen vorhanden sind. Wenn Sie einen Editor mit einer Codevorschlagsfunktion haben, kann es sinnvoll sein, ** nicht zu verwenden, wenn Kandidaten mit demselben Namen im Vorschlag aufgeführt sind, wenn Sie versuchen, eine neue Variable zu definieren ** (das folgende Bild ist ein Vorschlag für Visual Studio-Code). .. image.png

Zusammenfassung

** Wenn Sie den Variablennamen mehr Aufmerksamkeit schenken, sind sie viel lesbarer und können den gesamten Codeprozess leichter verfolgen. Dies erhöht die Wahrscheinlichkeit der Früherkennung von Fehlern und kann die Produktivität erheblich verbessern. ** ** **

Überprüfen Sie die Variablennamen, während Sie Ihren Code schreiben.

Vielen Dank für das Lesen bis zum Ende m (_ _) m Ich würde mich freuen, wenn Sie mich über Korrekturen oder Ergänzungen informieren könnten.

Recommended Posts

Anti-Muster mit variabler Benennung, die Anfänger normalerweise tun
10 Python-Fehler, die Anfängern häufig sind
[Für Anfänger] Was ist nach der Installation von Anaconda zu tun?
Automatischer Browser-Betrieb, den auch Anfänger ausführen können
Soll ich diese Kopie reparieren?
Python, das ich Anfängern in der Programmierung empfehlen möchte
Syntax, die Perl-Benutzer in Python häufig vergessen
Alles für Anfänger, um maschinelles Lernen zu können