Platné a neplatné názvy a pomenovacie konvencie pre identifikátory (napr. názvy premenných) v jazyku Python

obchodné

V jazyku Python musia byť identifikátory (názvy premenných, funkcií, tried atď.) definované podľa pravidiel. Názvy, ktoré sa neriadia pravidlami, nemožno použiť ako identifikátory a ich použitie bude mať za následok chybu.

Tu sú uvedené tieto informácie.

  • Znaky, ktoré sa môžu a nemôžu používať v identifikátoroch (názvoch)
    • Znaky ASCII
    • Znak Unicode
      • normalizácia (napr. v matematike)
  • Kontrola, či je reťazec platným identifikátorom:isidentifier()
  • Slová, ktoré sa nemôžu používať ako identifikátory (názvy) (rezervované slová)
  • Slová, ktoré by sa nemali používať ako identifikátory (názvy)
  • Názvoslovné konvencie pre PEP8

Nasledujúci popis je uvedený v jazyku Python 3 a v jazyku Python 2 sa môže líšiť.

Znaky, ktoré sa môžu a nemôžu používať v identifikátoroch (názvoch)

Označuje znaky, ktoré sa môžu a nemôžu používať ako identifikátory (názvy).

Okrem toho, aj keď je veľa vecí, o ktorých treba písať, v podstate si stačí zapamätať nasledovné.

  • Používajte veľké a malé písmená, číslice a podčiarkovníky.
  • Prvé (prvé) písmeno nemôže byť číslo.

Znaky ASCII

Znaky ASCII, ktoré možno použiť ako identifikátory (názvy), sú veľké a malé písmená (A~Z,a~z), čísla (0~9) a podčiarkovníky (_). Pri abecede sa rozlišujú veľké a malé písmená.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Iné symboly ako podčiarkovníky sa nemôžu používať.

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

Čísla sa nemôžu používať na začiatku (prvé písmeno).

# 1_abc = 100
# SyntaxError: invalid token

Na začiatku sa môžu používať aj podčiarkovníky.

_abc = 100
print(_abc)
# 100

Upozorňujeme však, že podčiarkovník na začiatku môže mať osobitný význam.

Znak Unicode

Od Pythonu 3 je možné používať aj znaky Unicode.

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

Nie všetky znaky Unicode sa dajú použiť a v závislosti od kategórie Unicode niektoré nie je možné použiť. Napríklad symboly, ako sú interpunkčné znamienka a piktogramy, nie je možné použiť.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Kódy kategórií Unicode, ktoré možno použiť, nájdete v oficiálnej dokumentácii.

V mnohých prípadoch nie je výhodné používať čínske znaky atď. jednoducho preto, že znaky Unicode sa dajú tiež použiť (bez chyby).

normalizácia (napr. v matematike)

Znaky Unicode sa na účely interpretácie konvertujú do normalizovanej podoby NFKC. Napríklad abecedy s plnou šírkou sa konvertujú na abecedy s polovičnou šírkou (znaky ASCII).

Všimnite si, že aj keď zdrojový kód zobrazuje iné zobrazenie, považuje sa za rovnaký objekt a prepíše sa.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Kontrola, či je reťazec platný identifikátor: isidentifier()

To, či je reťazec platný ako identifikátor, možno overiť pomocou metódy isidentifier().

Vráti true, ak je platný ako identifikátor, a false, ak je neplatný.

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

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

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

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

Slová, ktoré sa nemôžu používať ako identifikátory (názvy) (rezervované slová)

Niektoré slová (rezervované slová) nemožno použiť ako identifikátory, aj keď sú to platné reťazce ako identifikátory (názvy).

Keďže rezervované slovo je ako identifikátor platný reťazec, funkcia isidentifier() vráti true, ale ak sa použije ako identifikátor, nastane chyba.

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

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

Ak chcete získať zoznam rezervovaných slov a skontrolovať, či je reťazec rezervovaným slovom, použite modul kľúčových slov štandardnej knižnice.

Slová, ktoré by sa nemali používať ako identifikátory (názvy)

Napríklad názvy vstavaných funkcií jazyka Python možno použiť ako identifikátory, takže im môžete priradiť nové hodnoty ako premenným.

Napríklad funkcia len() je vstavaná funkcia, ktorá vracia počet prvkov v zozname alebo počet znakov v reťazci.

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

print(len('abc'))
# 3

Ak tomuto názvu priradíte novú hodnotu, pôvodná funkcia sa prepíše a stane sa nepoužiteľnou. Všimnite si, že pri priradení novej hodnoty sa nevypíše žiadna chyba ani varovanie.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Ďalšou častou chybou je použitie list = [0, 1, 2], čo znemožňuje použitie funkcie list(). Buďte opatrní.

Názvoslovné konvencie pre PEP8

PEP je skratka pre Python Enhancement Proposal, dokument, ktorý opisuje nové funkcie a iné aspekty jazyka Python.

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 je ôsmy a opisuje „Style Guide for Python Code“, teda príručku štýlu pre Python.

Uvádzajú sa aj názvoslovné konvencie.

Viac informácií nájdete na vyššie uvedenom odkaze, ale odporúča sa napríklad tento štýl písania.

  • Modul
    • lowercase_underscore
    • Malé písmená + podčiarkovník
  • Balík
    • lowercase
    • všetky malé písmená
  • Triedy, výnimky
    • CapitalizedWords(CamelCase)
    • Veľké písmeno na začiatku slova, bez podčiarkovníka
  • Funkcie, premenné a metódy
    • lowercase_underscore
    • Malé písmená + podčiarkovník
  • konštantný
    • ALL_CAPS
    • Veľké písmená + podčiarkovník

Ak však vaša organizácia nemá vlastné konvencie pomenovania, odporúča sa postupovať podľa PEP8.

Copied title and URL