Veljavna in neveljavna imena ter konvencije poimenovanja za identifikatorje (npr. imena spremenljivk) v Pythonu

Posel

V Pythonu je treba identifikatorje (imena spremenljivk, funkcij, razredov itd.) opredeliti v skladu s pravili. Imen, ki ne upoštevajo pravil, ni mogoče uporabiti kot identifikatorjev in povzroči napako.

Tu so na voljo naslednje informacije.

  • Znaki, ki se lahko in ne smejo uporabljati v identifikatorjih (imenih)
    • Znaki ASCII
    • Znak Unicode
      • normalizacija (npr. v matematiki)
  • Preveri, ali je niz veljaven identifikator:isidentifier()
  • Besede, ki se ne smejo uporabljati kot identifikatorji (imena) (rezervirane besede)
  • Besede, ki se ne smejo uporabljati kot identifikatorji (imena)
  • Konvencije poimenovanja za PEP8

Naslednji opis je podan v Pythonu 3 in je lahko v Pythonu 2 drugačen.

Znaki, ki se lahko in ne smejo uporabljati v identifikatorjih (imenih)

Označuje znake, ki se lahko in ne smejo uporabljati kot identifikatorji (imena).

Čeprav lahko pišete o številnih stvareh, si morate v bistvu zapomniti le naslednje.

  • Uporabljajte velike in male črke, številke in podčrtanke.
  • Prva (prva) črka ne sme biti številka.

Znaki ASCII

Znaki ASCII, ki se lahko uporabljajo kot identifikatorji (imena), so velike in male abecede (A~Z,a~z), številke (0~9) in podčrtaji (_). Abeceda je občutljiva na velike in male črke.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Simbolov, razen podčrtank, ni mogoče uporabiti.

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

Prav tako številk ni mogoče uporabiti na začetku (prva črka).

# 1_abc = 100
# SyntaxError: invalid token

Na začetku lahko uporabite tudi podpičje.

_abc = 100
print(_abc)
# 100

Vendar upoštevajte, da ima podčrtaj na začetku lahko poseben pomen.

Znak Unicode

Od Pythona 3 lahko uporabljate tudi znake Unicode.

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

Vseh znakov Unicode ni mogoče uporabiti, nekaterih pa glede na kategorijo Unicode ni mogoče uporabiti. Na primer, simbolov, kot so ločila in piktogrami, ni mogoče uporabiti.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Za kode kategorij Unicode, ki jih je mogoče uporabiti, glejte uradno dokumentacijo.

V številnih primerih uporaba kitajskih znakov itd. nima nobene prednosti, ker je mogoče uporabiti tudi znake Unicode (brez napak).

normalizacija (npr. v matematiki)

Znaki Unicode se za interpretacijo pretvorijo v normalizirano obliko NFKC. Na primer, abecede polne širine se pretvorijo v abecede polovične širine (znaki ASCII).

Upoštevajte, da tudi če izvorna koda prikazuje drugačen prikaz, se šteje za isti predmet in bo prepisan.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Preverite, ali je niz veljaven identifikator: isidentifier()

Ali je niz veljaven kot identifikator, lahko preverite z metodo isidentifier().

Vrne true, če je kot identifikator veljaven, in false, če je neveljaven.

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

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

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

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

Besede, ki se ne smejo uporabljati kot identifikatorji (imena) (rezervirane besede)

Nekatere besede (rezervirane besede) se ne smejo uporabljati kot identifikatorji, čeprav so kot identifikatorji (imena) veljavni nizi.

Ker je rezervirana beseda kot identifikator veljaven niz, funkcija isidentifier() vrne true, vendar pride do napake, če jo uporabimo kot identifikator.

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

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

Če želite pridobiti seznam rezerviranih besed in preveriti, ali je niz rezervirana beseda, uporabite modul za ključne besede standardne knjižnice.

Besede, ki se ne smejo uporabljati kot identifikatorji (imena)

Imena Pythonovih vgrajenih funkcij, na primer, lahko uporabite kot identifikatorje, tako da jim lahko kot spremenljivkam dodelite nove vrednosti.

Len() je na primer vgrajena funkcija, ki vrne število elementov na seznamu ali število znakov v nizu.

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

print(len('abc'))
# 3

Če temu imenu len dodelite novo vrednost, se prvotna funkcija prepiše in postane neuporabna. Upoštevajte, da se ob dodelitvi nove vrednosti ne izpiše nobena napaka ali opozorilo.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Druga pogosta napaka je uporaba seznama = [0, 1, 2], kar onemogoča uporabo funkcije list(). Bodite previdni.

Konvencije poimenovanja za PEP8

PEP je kratica za Python Enhancement Proposal, dokument, ki opisuje nove funkcije in druge vidike Pythona.

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 osmi PEP, ki opisuje “Vodnik sloga za Pythonovo kodo”, to je vodnik sloga za Python.

Navedene so tudi konvencije za poimenovanje.

Za več podrobnosti glejte zgornjo povezavo, vendar je na primer priporočljiv naslednji slog pisanja.

  • Modul
    • lowercase_underscore
    • Male črke + podčrtaj
  • Paket
    • lowercase
    • vse male črke
  • Razredi, izjeme
    • CapitalizedWords(CamelCase)
    • Prvo črko v besedi napišite z veliko začetnico, brez podčrtaja
  • Funkcije, spremenljivke in metode
    • lowercase_underscore
    • Male črke + podčrtaj
  • stalno
    • ALL_CAPS
    • Velike črke + podčrtaj

Če vaša organizacija nima lastnih konvencij za poimenovanje, je priporočljivo upoštevati PEP8.

Copied title and URL