Í Python þarf að skilgreina auðkenni (heiti breyta, falla, flokka o.s.frv.) samkvæmt reglum. Nöfn sem ekki fylgja reglunum geta ekki verið notuð sem auðkenni og munu leiða til villu.
Eftirfarandi upplýsingar eru veittar hér.
- Stafir sem hægt er og ekki er hægt að nota í auðkennum (nöfn)
- ASCII stafir
- Unicode stafur
- eðlileg (t.d. í stærðfræði)
- Athugaðu hvort strengurinn sé gilt auðkenni:
isidentifier()
- Orð sem ekki er hægt að nota sem auðkenni (nöfn) (frátekið orð)
- Orð sem ætti ekki að nota sem auðkenni (nöfn)
- Nafnavenjur fyrir PEP8
Eftirfarandi lýsing er gefin í Python 3 og gæti verið önnur í Python 2.
Stafir sem hægt er og ekki er hægt að nota í auðkennum (nöfn)
Gefur til kynna stafi sem hægt er og ekki er hægt að nota sem auðkenni (nöfn).
Að auki, þó að það sé margt til að skrifa um, er í rauninni allt sem þú þarft að muna eftir eftirfarandi.
- Notaðu há- og lágstafi, tölustafi og undirstrik.
- Fyrsti (fyrsti) stafurinn getur ekki verið tala.
ASCII stafir
ASCII stafir sem hægt er að nota sem auðkenni (nöfn) eru hástafir og lágstafir (A~Z,a~z), tölur (0~9) og undirstrik (_). Stafrófið er hástöfum.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Ekki er hægt að nota önnur tákn en undirstrik.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
Einnig er ekki hægt að nota tölur í upphafi (fyrsti stafur).
# 1_abc = 100
# SyntaxError: invalid token
Einnig er hægt að nota undirstrik í upphafi.
_abc = 100
print(_abc)
# 100
Athugaðu þó að undirstrik í upphafi getur haft sérstaka merkingu.
Unicode stafur
Frá Python 3 er einnig hægt að nota Unicode stafi.
変数1 = 100
print(変数1)
# 100
Ekki er hægt að nota alla Unicode stafi og það fer eftir Unicode flokki, suma er ekki hægt að nota. Til dæmis er ekki hægt að nota tákn eins og greinarmerki og táknmyndir.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Sjá opinber skjöl fyrir Unicode flokkakóða sem hægt er að nota.
Í mörgum tilfellum er enginn kostur við að nota kínverska stafi o.s.frv., einfaldlega vegna þess að Unicode stafi er líka hægt að nota (villulaus).
eðlileg (t.d. í stærðfræði)
Unicode stöfum er breytt í eðlilegt form NFKC til túlkunar. Til dæmis er stafróf í fullri breidd breytt í stafróf í hálfbreidd (ASCII stafi).
Athugaðu að jafnvel þótt frumkóði sýni aðra skjá, þá telst hann vera sami hluturinn og verður skrifað yfir.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Athugaðu hvort strengurinn sé gilt auðkenni: isidentifier()
Hvort strengur sé gildur sem auðkenni eða ekki er hægt að athuga með strengjaaðferðinni isidentifier().
Það skilar satt ef það er gilt sem auðkenni, og ósatt ef það er ógilt.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Orð sem ekki er hægt að nota sem auðkenni (nöfn) (frátekið orð)
Það eru nokkur orð (áskilin orð) sem ekki er hægt að nota sem auðkenni jafnvel þótt þau séu gildir strengir sem auðkenni (nöfn).
Þar sem frátekið orð er gildur strengur sem auðkenni, skilar isidentifier() satt, en villa kemur upp ef það er notað sem auðkenni.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Til að fá lista yfir frátekin orð og athuga hvort strengur sé frátekið orð, notaðu lykilorðareininguna í staðlaða bókasafninu.
Orð sem ætti ekki að nota sem auðkenni (nöfn)
Nöfn innbyggðra aðgerða Python er til dæmis hægt að nota sem auðkenni, svo þú getur úthlutað þeim nýjum gildum sem breytum.
Til dæmis er len() innbyggt fall sem skilar fjölda staka í lista eða fjölda stafa í streng.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Ef þú gefur þessu nafni len nýtt gildi, verður upprunalega fallið skrifað yfir og verður ónothæft. Athugaðu að engin villa eða viðvörun verður prentuð þegar nýtt gildi er úthlutað.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Önnur algeng mistök er að nota list = [0, 1, 2], sem gerir það ómögulegt að nota list(). Farðu varlega.
Nafnavenjur fyrir PEP8
PEP stendur fyrir Python Enhancement Proposal, skjal sem lýsir nýjum eiginleikum og öðrum þáttum 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 er sá áttundi og hann lýsir „Style Guide for Python Code“, það er stílahandbókinni fyrir Python.
Nafnavenjur eru einnig nefndar.
Sjá tengilinn hér að ofan fyrir frekari upplýsingar, en til dæmis er mælt með eftirfarandi ritstíl.
- Eining
lowercase_underscore
- Lágstafir + undirstrik
- Pakki
lowercase
- allir lágstafir
- Flokkar, undantekningar
CapitalizedWords
(CamelCase
)- Skrifaðu fyrsta staf orðs með hástöfum, engin undirstrik
- Aðgerðir, breytur og aðferðir
lowercase_underscore
- Lágstafir + undirstrik
- fastur
ALL_CAPS
- Stórir stafir + undirstrik
Hins vegar, ef fyrirtæki þitt hefur ekki eigin nafnavenjur, er mælt með því að fylgja PEP8.