Kehtivad ja kehtetud nimed ning identifikaatorite (nt muutujate nimed) nimekonventsioonid Pythonis

Äri

Pythonis tuleb identifikaatorid (muutujate, funktsioonide, klasside jne nimed) defineerida vastavalt reeglitele. Reeglitele mittevastavaid nimesid ei saa kasutada identifikaatoritena ja need annavad vea.

Siin on esitatud järgmine teave.

  • Tähemärgid, mida saab ja ei saa kasutada identifikaatorites (nimedes).
    • ASCII tähemärgid
    • Unicode'i märk
      • normaliseerimine (nt matemaatikas)
  • Kontrollida, kas string on kehtiv identifikaator:isidentifier()
  • sõnad, mida ei saa kasutada identifikaatoritena (nimed) (reserveeritud sõnad)
  • Sõnad, mida ei tohiks kasutada identifikaatoritena (nimedena).
  • PEP8 nimetuskonventsioonid

Järgnev kirjeldus on esitatud Python 3 versioonis ja võib Python 2 versioonis erineda.

Tähemärgid, mida saab ja ei saa kasutada identifikaatorites (nimedes).

Näitab märke, mida saab ja ei saa kasutada identifikaatoritena (nimedena).

Lisaks, kuigi on palju asju, millest kirjutada, on põhimõtteliselt kõik, mida peate meeles pidama, järgmine.

  • Kasutage suuri ja väikseid tähti, numbreid ja alatähti.
  • Esimene (esimene) täht ei saa olla number.

ASCII tähemärgid

ASCII-märgid, mida saab kasutada identifikaatoritena (nimedena), on suured ja väikesed tähestikud (A~Z,a~z), numbrid (0~9) ja allakriipsud (_). Tähestik on suur- ja väiketähestiku suhtes tundlik.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Muid sümboleid kui allajooned ei saa kasutada.

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

Samuti ei saa kasutada numbreid alguses (esimene täht).

# 1_abc = 100
# SyntaxError: invalid token

Alamjooni võib kasutada ka alguses.

_abc = 100
print(_abc)
# 100

Pange aga tähele, et alajaotusel alguses võib olla eriline tähendus.

Unicode'i märk

Alates Python 3-st saab kasutada ka Unicode-märke.

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

Kõiki Unicode-märke ei saa kasutada ja sõltuvalt Unicode-kategooriast ei saa mõningaid kasutada. Näiteks ei saa kasutada selliseid sümboleid nagu kirjavahemärgid ja piktogrammid.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Kasutatavate Unicode-kategooriakoodide kohta vt ametlikku dokumentatsiooni.

Paljudel juhtudel ei ole hiina tähemärkide vms. kasutamisel mingit eelist, sest ka Unicode'i tähemärke saab kasutada (ilma veata).

normaliseerimine (nt matemaatikas)

Unicode'i märgid teisendatakse tõlgendamiseks normaliseeritud vormi NFKC. Näiteks täispikkused tähestikud teisendatakse poollaiulduvateks tähestikeks (ASCII-märkideks).

Pange tähele, et isegi kui lähtekood näitab teistsugust kuvamist, loetakse seda samaks objektiks ja see kirjutatakse üle.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Kontrollida, kas string on kehtiv identifikaator: isidentifier()

Seda, kas string on identifikaatorina kehtiv või mitte, saab kontrollida stringi meetodiga isidentifier().

See tagastab true, kui see on identifikaatorina kehtiv, ja false, kui see on kehtetu.

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

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

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

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

sõnad, mida ei saa kasutada identifikaatoritena (nimed) (reserveeritud sõnad)

On mõned sõnad (reserveeritud sõnad), mida ei saa kasutada identifikaatoritena, isegi kui need on identifikaatoritena (nimedena) kehtivad stringid.

Kuna reserveeritud sõna on identifikaatorina kehtiv string, siis isidentifier() tagastab true, kuid selle kasutamisel identifikaatorina tekib viga.

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

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

Reserveeritud sõnade loendi saamiseks ja selle kontrollimiseks, kas string on reserveeritud sõna, kasutage standardraamatukogu võtmesõnamoodulit.

Sõnad, mida ei tohiks kasutada identifikaatoritena (nimedena).

Näiteks Pythoni sisseehitatud funktsioonide nimesid saab kasutada identifikaatoritena, nii et neile saab muutujatena määrata uusi väärtusi.

Näiteks len() on sisseehitatud funktsioon, mis tagastab nimekirja elementide arvu või stringi tähemärkide arvu.

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

print(len('abc'))
# 3

Kui määrate sellele nimele len uue väärtuse, kirjutatakse algne funktsioon üle ja muutub kasutuskõlbmatuks. Pange tähele, et uue väärtuse määramisel ei väljastata viga ega hoiatust.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Teine levinud viga on kasutada list = [0, 1, 2], mis muudab list() kasutamise võimatuks. Olge ettevaatlik.

PEP8 nimetuskonventsioonid

PEP tähendab Pythoni täiustamisettepanekut, mis on dokument, milles kirjeldatakse Pythoni uusi funktsioone ja muid aspekte.

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 on kaheksas ja selles kirjeldatakse “Pythoni koodi stiilijuhendit”, st Pythoni stiilijuhendit.

Mainitakse ka nimetamiskonventsioone.

Lisateavet leiate ülaltoodud lingilt, kuid näiteks on soovitatav kasutada järgmist kirjutamisviisi.

  • Moodul
    • lowercase_underscore
    • Väikesed tähed + alajaotus
  • Pakett
    • lowercase
    • kõik väiketähed
  • Klassid, erandid
    • CapitalizedWords(CamelCase)
    • Sõna esimene täht tuleb kirjutada suurtähtedega, alajaotust ei tohi kasutada.
  • Funktsioonid, muutujad ja meetodid
    • lowercase_underscore
    • Väikesed tähed + alajaotus
  • pidev
    • ALL_CAPS
    • Suurtähed + alajaotus

Kui teie organisatsioonil ei ole siiski oma nimetamiskonventsioone, on soovitatav järgida PEP8.

Copied title and URL