Emrat e vlefshëm dhe të pavlefshëm dhe konventat e emërtimit për identifikuesit (p.sh. emrat e variablave) në Python

biznes

Në Python, identifikuesit (emrat e variablave, funksionet, klasat, etj.) duhet të përcaktohen sipas rregullave. Emrat që nuk respektojnë rregullat nuk mund të përdoren si identifikues dhe do të rezultojnë në një gabim.

Informacioni i mëposhtëm jepet këtu.

  • Karakteret që mund dhe nuk mund të përdoren në identifikues (emra)
    • Personazhet ASCII
    • Karakteri Unicode
      • normalizimi (p.sh. në matematikë)
  • Kontrolloni nëse vargu është një identifikues i vlefshëm:isidentifier()
  • Fjalët që nuk mund të përdoren si identifikues (emra) (fjalë të rezervuara)
  • Fjalët që nuk duhen përdorur si identifikues (emra)
  • Konventat e emërtimit për PEP8

Përshkrimi i mëposhtëm jepet në Python 3 dhe mund të jetë i ndryshëm në Python 2.

Karakteret që mund dhe nuk mund të përdoren në identifikues (emra)

Tregon karaktere që mund dhe nuk mund të përdoren si identifikues (emra).

Përveç kësaj, megjithëse ka shumë gjëra për të shkruar, në thelb gjithçka që duhet të mbani mend është sa vijon.

  • Përdorni shkronja të mëdha dhe të vogla, numra dhe nënvizime.
  • Shkronja e parë (e parë) nuk mund të jetë numër.

Personazhet ASCII

Karakteret ASCII që mund të përdoren si identifikues (emra) janë alfabetet e mëdha dhe të vogla (A~Z,a~z), numrat (0~9) dhe nënvizat (_). Alfabeti është i ndjeshëm ndaj shkronjave të vogla.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Nuk mund të përdoren simbole të tjera përveç nënvizave.

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

Gjithashtu, numrat nuk mund të përdoren në fillim (shkronja e parë).

# 1_abc = 100
# SyntaxError: invalid token

Në fillim mund të përdoren edhe nënvizat.

_abc = 100
print(_abc)
# 100

Megjithatë, vini re se një nënvizim në fillim mund të ketë një kuptim të veçantë.

Karakteri Unicode

Që nga Python 3, karakteret Unicode mund të përdoren gjithashtu.

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

Jo të gjithë karakteret e Unicode mund të përdoren dhe në varësi të kategorisë së Unicode, disa nuk mund të përdoren. Për shembull, simbolet si shenjat e pikësimit dhe piktogramet nuk mund të përdoren.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Shihni dokumentacionin zyrtar për kodet e kategorisë Unicode që mund të përdoren.

Në shumë raste, nuk ka asnjë avantazh për të përdorur karaktere kineze, etj., thjesht sepse mund të përdoren edhe karakteret Unicode (pa gabim).

normalizimi (p.sh. në matematikë)

Karakteret e Unicode konvertohen në formën e normalizuar NFKC për interpretim. Për shembull, alfabetet me gjerësi të plotë konvertohen në alfabete me gjerësi gjysmë (karaktere ASCII).

Vini re se edhe nëse kodi burim tregon një ekran të ndryshëm, ai konsiderohet i njëjti objekt dhe do të mbishkruhet.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Kontrolloni nëse vargu është një identifikues i vlefshëm: isidentifier()

Nëse një varg është apo jo i vlefshëm si identifikues, mund të kontrollohet me metodën e vargut isidentifier().

Ai kthen true nëse është i vlefshëm si identifikues dhe false nëse është i pavlefshëm.

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

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

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

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

Fjalët që nuk mund të përdoren si identifikues (emra) (fjalë të rezervuara)

Ka disa fjalë (fjalë të rezervuara) që nuk mund të përdoren si identifikues edhe nëse janë vargje të vlefshme si identifikues (emra).

Meqenëse një fjalë e rezervuar është një varg i vlefshëm si identifikues, isidentifier() kthen true, por ndodh një gabim nëse përdoret si identifikues.

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

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

Për të marrë një listë të fjalëve të rezervuara dhe për të kontrolluar nëse një varg është një fjalë e rezervuar, përdorni modulin e fjalëve kyçe të bibliotekës standarde.

Fjalët që nuk duhen përdorur si identifikues (emra)

Emrat e funksioneve të integruara të Python, për shembull, mund të përdoren si identifikues, kështu që ju mund t’u caktoni vlera të reja atyre si variabla.

Për shembull, len() është një funksion i integruar që kthen numrin e elementeve në një listë ose numrin e karaktereve në një varg.

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

print(len('abc'))
# 3

Nëse i caktoni një vlerë të re këtij emri len, funksioni origjinal do të mbishkruhet dhe do të bëhet i papërdorshëm. Vini re se asnjë gabim ose paralajmërim nuk do të printohet kur caktoni një vlerë të re.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Një gabim tjetër i zakonshëm është përdorimi i list = [0, 1, 2], gjë që e bën të pamundur përdorimin e list(). Bej kujdes.

Konventat e emërtimit për PEP8

PEP qëndron për Python Enhancement Proposal, një dokument që përshkruan veçori të reja dhe aspekte të tjera të 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 është i teti dhe përshkruan “Udhëzuesin e stilit për kodin Python”, domethënë udhëzuesin e stilit për Python.

Përmenden edhe konventat e emërtimit.

Shikoni lidhjen e mësipërme për më shumë detaje, por për shembull, rekomandohet stili i mëposhtëm i shkrimit.

  • Moduli
    • lowercase_underscore
    • Shkronjat e vogla + nënvizat
  • Paketim
    • lowercase
    • të gjitha shkronjat e vogla
  • Klasat, Përjashtimet
    • CapitalizedWords(CamelCase)
    • Shkruani shkronjën e parë të një fjale me shkronjë të madhe, pa nënvizim
  • Funksionet, variablat dhe metodat
    • lowercase_underscore
    • Shkronjat e vogla + nënvizat
  • konstante
    • ALL_CAPS
    • Shkronja të mëdha + nënvizim

Sidoqoftë, nëse organizata juaj nuk ka konventat e veta të emërtimit, rekomandohet të ndiqni PEP8.