Gültige und ungültige Namen und Benennungskonventionen für Bezeichner (z. B. Variablennamen) in Python

Geschäft

In Python müssen Bezeichner (Namen von Variablen, Funktionen, Klassen usw.) nach bestimmten Regeln definiert werden. Namen, die nicht den Regeln entsprechen, können nicht als Bezeichner verwendet werden und führen zu einem Fehler.

Hier finden Sie die folgenden Informationen.

  • Zeichen, die in Bezeichnern (Namen) verwendet werden können und nicht verwendet werden dürfen
    • ASCII-Zeichen
    • Unicode-Zeichen
      • Normalisierung (z. B. in der Mathematik)
  • Prüfen, ob die Zeichenkette ein gültiger Bezeichner ist:isidentifier()
  • Wörter, die nicht als Bezeichner (Namen) verwendet werden können (reservierte Wörter)
  • Wörter, die nicht als Identifikatoren (Namen) verwendet werden sollten
  • Benennungskonventionen für PEP8

Die folgende Beschreibung bezieht sich auf Python 3 und kann in Python 2 anders aussehen.

Zeichen, die in Bezeichnern (Namen) verwendet werden können und nicht verwendet werden dürfen

Gibt an, welche Zeichen als Bezeichner (Namen) verwendet werden können und welche nicht.

Darüber hinaus gibt es zwar viele Dinge, über die man schreiben kann, aber im Grunde muss man sich nur an Folgendes erinnern.

  • Verwenden Sie Groß- und Kleinbuchstaben, Zahlen und Unterstriche.
  • Der erste (erste) Buchstabe darf keine Zahl sein.

ASCII-Zeichen

ASCII-Zeichen, die als Bezeichner (Namen) verwendet werden können, sind Groß- und Kleinbuchstaben (A~Z,a~z), Zahlen (0~9) und Unterstriche (_). Beim Alphabet wird zwischen Groß- und Kleinschreibung unterschieden.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Andere Symbole als Unterstriche können nicht verwendet werden.

# AbcDef-123 = 100
# SyntaxError: can't assign to operator

Außerdem können keine Zahlen am Anfang (erster Buchstabe) verwendet werden.

# 1_abc = 100
# SyntaxError: invalid token

Unterstriche können auch am Anfang verwendet werden.

_abc = 100
print(_abc)
# 100

Beachten Sie jedoch, dass ein Unterstrich am Anfang eine besondere Bedeutung haben kann.

Unicode-Zeichen

Seit Python 3 können auch Unicode-Zeichen verwendet werden.

変数1 = 100
print(変数1)
# 100

Nicht alle Unicode-Zeichen können verwendet werden, und je nach Unicode-Kategorie können einige nicht verwendet werden. Zum Beispiel können Symbole wie Satzzeichen und Piktogramme nicht verwendet werden.

# 変数。 = 100
# SyntaxError: invalid character in identifier

# ☺ = 100
# SyntaxError: invalid character in identifier

Welche Unicode-Kategorie-Codes verwendet werden können, entnehmen Sie bitte der offiziellen Dokumentation.

In vielen Fällen ist die Verwendung chinesischer Zeichen usw. nicht von Vorteil, da auch Unicode-Zeichen (fehlerfrei) verwendet werden können.

Normalisierung (z. B. in der Mathematik)

Unicode-Zeichen werden für die Interpretation in die normalisierte Form NFKC umgewandelt. Zum Beispiel werden Alphabete mit voller Breite in Alphabete mit halber Breite (ASCII-Zeichen) umgewandelt.

Beachten Sie, dass selbst wenn der Quellcode eine andere Anzeige zeigt, diese als dasselbe Objekt betrachtet und überschrieben wird.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Prüfen, ob der String ein gültiger Bezeichner ist: isidentifier()

Ob eine Zeichenkette als Bezeichner gültig ist oder nicht, kann mit der String-Methode isidentifier() überprüft werden.

Er gibt true zurück, wenn er als Bezeichner gültig ist, und false, wenn er ungültig ist.

print('AbcDef_123'.isidentifier())
# True

print('AbcDef-123'.isidentifier())
# False

print('変数1'.isidentifier())
# True

print('☺'.isidentifier())
# False

Wörter, die nicht als Bezeichner (Namen) verwendet werden können (reservierte Wörter)

Es gibt einige Wörter (reservierte Wörter), die nicht als Bezeichner verwendet werden können, auch wenn es sich um gültige Zeichenketten als Bezeichner (Namen) handelt.

Da ein reserviertes Wort eine gültige Zeichenkette als Bezeichner ist, gibt isidentifier() true zurück, aber ein Fehler tritt auf, wenn es als Bezeichner verwendet wird.

print('None'.isidentifier())
# True

# None = 100
# SyntaxError: can't assign to keyword

Um eine Liste der reservierten Wörter zu erhalten und um zu prüfen, ob eine Zeichenkette ein reserviertes Wort ist, verwenden Sie das Schlüsselwortmodul der Standardbibliothek.

Wörter, die nicht als Identifikatoren (Namen) verwendet werden sollten

Die Namen der in Python eingebauten Funktionen können z. B. als Bezeichner verwendet werden, so dass Sie ihnen neue Werte als Variablen zuweisen können.

len() ist zum Beispiel eine eingebaute Funktion, die die Anzahl der Elemente in einer Liste oder die Anzahl der Zeichen in einer Zeichenkette zurückgibt.

print(len)
# <built-in function len>

print(len('abc'))
# 3

Wenn Sie diesem Namen len einen neuen Wert zuweisen, wird die ursprüngliche Funktion überschrieben und ist dann unbrauchbar. Beachten Sie, dass bei der Zuweisung eines neuen Wertes kein Fehler oder eine Warnung ausgegeben wird.

print(len('abc'))
# 3

len = 100
print(len)
# 100

# print(len('abc'))
# TypeError: 'int' object is not callable

Ein weiterer häufiger Fehler ist die Verwendung von list = [0, 1, 2], was die Verwendung von list() unmöglich macht. Seien Sie vorsichtig.

Benennungskonventionen für PEP8

PEP steht für Python Enhancement Proposal, ein Dokument, das neue Funktionen und andere Aspekte von Python beschreibt.

PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org

PEP8 ist das achte, und es beschreibt den “Style Guide for Python Code”, also den Stil-Leitfaden für Python.

Auch die Namenskonventionen werden erwähnt.

Weitere Einzelheiten finden Sie unter dem obigen Link, aber es wird beispielsweise folgender Schreibstil empfohlen.

  • Modul
    • lowercase_underscore
    • Kleinbuchstaben + Unterstrich
  • Paket
    • lowercase
    • alle Kleinbuchstaben
  • Klassen, Ausnahmen
    • CapitalizedWords(CamelCase)
    • Großschreibung des ersten Buchstabens eines Wortes, kein Unterstrich
  • Funktionen, Variablen und Methoden
    • lowercase_underscore
    • Kleinbuchstaben + Unterstrich
  • Konstante
    • ALL_CAPS
    • Großbuchstaben + Unterstrich

Wenn Ihre Organisation jedoch keine eigenen Namenskonventionen hat, empfiehlt es sich, PEP8 zu befolgen.

Copied title and URL