Érvényes és érvénytelen nevek és az azonosítók (pl. változónevek) elnevezési konvenciói Pythonban

Üzleti

A Pythonban az azonosítókat (változók, függvények, osztályok stb. nevei) szabályoknak megfelelően kell definiálni. A szabályoknak nem megfelelő nevek nem használhatók azonosítóként, és hibát eredményeznek.

A következő információk itt találhatók.

  • Azonosítókban (nevekben) használható és nem használható karakterek
    • ASCII karakterek
    • Unicode karakter
      • normalizálás (pl. matematikában)
  • Ellenőrizze, hogy a karakterlánc érvényes azonosító-e:isidentifier()
  • Azonosítóként (névként) nem használható szavak (fenntartott szavak)
  • Azonosítóként nem használható szavak (nevek)
  • A PEP8 elnevezési konvenciók

Az alábbi leírás a Python 3-ban készült, és eltérhet a Python 2-ben.

Azonosítókban (nevekben) használható és nem használható karakterek

Jelzi azokat a karaktereket, amelyek azonosítóként (névként) használhatók és nem használhatók.

Ezenkívül, bár sok mindenről lehet írni, alapvetően csak a következőket kell megjegyeznie.

  • Használjon nagy- és kisbetűket, számokat és aláhúzásokat.
  • Az első (első) betű nem lehet szám.

ASCII karakterek

Az azonosítóként (névként) használható ASCII karakterek a nagy- és kisbetűs betűket (A~Z,a~z), a számokat (0~9) és az aláhúzásokat (_) tartalmazzák. Az ábécé a nagy- és kisbetűket különbözteti meg.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Az aláhúzáson kívüli szimbólumok nem használhatók.

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

A számok nem használhatók az elején (első betű).

# 1_abc = 100
# SyntaxError: invalid token

Az aláhúzások az elején is használhatók.

_abc = 100
print(_abc)
# 100

Vegye azonban figyelembe, hogy az aláhúzás az elején különleges jelentéssel bírhat.

Unicode karakter

A Python 3 óta Unicode karakterek is használhatók.

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

Nem minden Unicode-karakter használható, és a Unicode-kategóriától függően néhány nem használható. Például az olyan szimbólumok, mint az írásjelek és a piktogramok nem használhatók.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

A használható Unicode kategóriakódokat lásd a hivatalos dokumentációban.

Sok esetben nincs előnye a kínai karakterek stb. használatának, egyszerűen azért, mert az Unicode karakterek is használhatók (hiba nélkül).

normalizálás (pl. matematikában)

Az Unicode karaktereket az értelmezéshez az NFKC normalizált formájára alakítják át. Például a teljes szélességű betűket félszélességű betűkké (ASCII karakterekké) alakítják át.

Vegye figyelembe, hogy még ha a forráskód más megjelenítést is mutat, akkor is ugyanannak az objektumnak tekintendő, és felülírásra kerül.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Ellenőrizze, hogy a karakterlánc érvényes azonosító-e: isidentifier()

Azt, hogy egy karakterlánc érvényes-e azonosítóként, az isidentifier() karakterlánc-módszerrel lehet ellenőrizni.

Igazat ad vissza, ha érvényes az azonosító, és hamisat, ha érvénytelen.

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

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

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

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

Azonosítóként (névként) nem használható szavak (fenntartott szavak)

Vannak olyan szavak (fenntartott szavak), amelyek nem használhatók azonosítóként, még akkor sem, ha azonosítóként (névként) érvényes karakterláncok.

Mivel a foglalt szó érvényes karakterlánc azonosítóként, az isidentifier() igazat ad vissza, de hiba lép fel, ha azonosítóként használják.

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

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

A foglalt szavak listájának lekérdezéséhez és annak ellenőrzéséhez, hogy egy karakterlánc foglalt szó-e, használja a szabványos könyvtár kulcsszavas modulját.

Azonosítóként nem használható szavak (nevek)

A Python beépített függvényeinek nevei például azonosítóként használhatók, így változóként új értékeket rendelhetünk hozzájuk.

A len() például egy beépített függvény, amely egy lista elemeinek számát vagy egy karakterlánc karaktereinek számát adja vissza.

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

print(len('abc'))
# 3

Ha új értéket rendel a len névhez, az eredeti függvény felülíródik és használhatatlanná válik. Vegye figyelembe, hogy új érték hozzárendelésekor nem jelenik meg hiba vagy figyelmeztetés.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Egy másik gyakori hiba a list = [0, 1, 2] használata, ami lehetetlenné teszi a list() használatát. Legyünk óvatosak.

A PEP8 elnevezési konvenciók

A PEP a Python Enhancement Proposal rövidítése, egy olyan dokumentum, amely új funkciókat és a Python egyéb aspektusait írja le.

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

A PEP8 a nyolcadik, és a “Style Guide for Python Code”, azaz a Python stilisztikai útmutatóját írja le.

Az elnevezési konvenciókat is megemlítik.

További részletekért lásd a fenti linket, de például a következő írásmód ajánlott.

  • Modul
    • lowercase_underscore
    • Kisbetű + aláhúzás
  • Csomag
    • lowercase
    • minden kisbetű
  • Osztályok, kivételek
    • CapitalizedWords(CamelCase)
    • A szó első betűjét nagybetűvel írja, aláhúzás nélkül.
  • Funkciók, változók és módszerek
    • lowercase_underscore
    • Kisbetű + aláhúzás
  • állandó
    • ALL_CAPS
    • Nagybetűk + aláhúzás

Ha azonban az Ön szervezetének nincsenek saját elnevezési konvenciói, ajánlott a PEP8 szabványt követni.