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)
- Preverite, 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
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.