Katika Python, vitambulisho (majina ya anuwai, kazi, madarasa, nk) zinahitaji kufafanuliwa kulingana na sheria. Majina ambayo hayafuati sheria hayawezi kutumika kama vitambulisho na itasababisha kosa.
Habari zifuatazo zimetolewa hapa.
- Wahusika ambao wanaweza na hawawezi kutumiwa katika vitambulisho (majina)
- Wahusika wa ASCII
- Tabia ya Unicode
- kuhalalisha (k.m katika hesabu)
- Angalia ikiwa kamba ni kitambulisho halali:
isidentifier()
- Maneno ambayo hayawezi kutumiwa kama vitambulisho (majina) (maneno yaliyohifadhiwa)
- Maneno ambayo hayapaswi kutumiwa kama vitambulisho (majina)
- Kumtaja mikataba ya PEP8
Maelezo yafuatayo yametolewa katika Python 3, na inaweza kuwa tofauti katika Python 2.
Wahusika ambao wanaweza na hawawezi kutumiwa katika vitambulisho (majina)
Inaonyesha wahusika ambao wanaweza na hawawezi kutumiwa kama vitambulisho (majina).
Kwa kuongezea, ingawa kuna mambo mengi ya kuandika, kimsingi unachohitaji kukumbuka ni yafuatayo.
- Tumia herufi kubwa na herufi ndogo, nambari na alama za chini.
- Herufi ya kwanza (ya kwanza) haiwezi kuwa nambari.
Wahusika wa ASCII
Herufi za ASCII ambazo zinaweza kutumika kama vitambulisho (majina) ni herufi kubwa na ndogo (A ~ Z, a ~ z), nambari (0 ~ 9), na inasisitiza (_). Alfabeti ni nyeti-kisa.
AbcDef_123 = 100
print(AbcDef_123)
# 100
Alama zingine isipokuwa alama za chini haziwezi kutumiwa.
# AbcDef-123 = 100
# SyntaxError: can't assign to operator
Pia, nambari haziwezi kutumiwa mwanzoni (herufi ya kwanza).
# 1_abc = 100
# SyntaxError: invalid token
Kusisitiza pia kunaweza kutumika mwanzoni.
_abc = 100
print(_abc)
# 100
Walakini, kumbuka kuwa mkazo mwanzoni unaweza kuwa na maana maalum.
Tabia ya Unicode
Tangu Python 3, herufi za Unicode pia zinaweza kutumika.
変数1 = 100
print(変数1)
# 100
Sio herufi zote za Unicode zinazoweza kutumika, na kulingana na kategoria ya Unicode, zingine haziwezi kutumiwa. Kwa mfano, alama kama alama za uakifishaji na picha za picha haziwezi kutumika.
# 変数。 = 100
# SyntaxError: invalid character in identifier
# ☺ = 100
# SyntaxError: invalid character in identifier
Tazama nyaraka rasmi za nambari za kategoria za Unicode ambazo zinaweza kutumika.
Mara nyingi, hakuna faida ya kutumia herufi za Kichina, nk, kwa sababu tu wahusika wa Unicode pia wanaweza kutumika (bila kosa).
kuhalalisha (k.m katika hesabu)
Wahusika wa Unicode hubadilishwa kuwa fomu ya kawaida NFKC kwa tafsiri. Kwa mfano, alfabeti za upana kamili hubadilishwa kuwa alfabeti za upana wa nusu (herufi za ASCII).
Kumbuka kuwa hata kama nambari ya chanzo inaonyesha onyesho tofauti, inachukuliwa kuwa kitu kimoja na itaandikwa tena.
ABC = 100
ABC = -100
print(ABC)
# -100
print(ABC)
# -100
print(ABC is ABC)
# True
Angalia ikiwa kamba ni kitambulisho halali:
Ikiwa kamba ni halali kama kitambulisho kinaweza kuchunguzwa na kitambulisho njia ya kitambulisho ().
Inarudi kweli ikiwa ni halali kama kitambulisho, na ni uwongo ikiwa ni batili.
print('AbcDef_123'.isidentifier())
# True
print('AbcDef-123'.isidentifier())
# False
print('変数1'.isidentifier())
# True
print('☺'.isidentifier())
# False
Maneno ambayo hayawezi kutumiwa kama vitambulisho (majina) (maneno yaliyohifadhiwa)
Kuna maneno (maneno yaliyohifadhiwa) ambayo hayawezi kutumiwa kama vitambulisho hata ikiwa ni kamba halali kama vitambulisho (majina).
Kwa kuwa neno lililohifadhiwa ni kamba halali kama kitambulisho, isidentifier () inarudi kweli, lakini kosa linatokea ikiwa linatumika kama kitambulisho.
print('None'.isidentifier())
# True
# None = 100
# SyntaxError: can't assign to keyword
Kupata orodha ya maneno yaliyohifadhiwa na kuangalia ikiwa kamba ni neno lililohifadhiwa, tumia moduli ya neno kuu la maktaba ya kawaida.
Maneno ambayo hayapaswi kutumiwa kama vitambulisho (majina)
Majina ya kazi zilizojengwa ndani ya Python, kwa mfano, zinaweza kutumika kama vitambulisho, kwa hivyo unaweza kuwapa maadili mapya kama vigeuzi.
Kwa mfano, len () ni kazi iliyojengwa ambayo inarudisha idadi ya vitu kwenye orodha au idadi ya wahusika kwenye kamba.
print(len)
# <built-in function len>
print(len('abc'))
# 3
Ukipa thamani mpya jina hili len, kazi ya asili itaandikwa tena na haitatumika. Kumbuka kuwa hakuna kosa au onyo litachapishwa wakati wa kupeana dhamana mpya.
print(len('abc'))
# 3
len = 100
print(len)
# 100
# print(len('abc'))
# TypeError: 'int' object is not callable
Kosa lingine la kawaida ni kutumia orodha = [0, 1, 2], ambayo inafanya kuwa haiwezekani kutumia orodha (). Kuwa mwangalifu.
Kumtaja mikataba ya PEP8
PEP inasimama kwa Pendekezo la Uboreshaji wa Python, hati ambayo inaelezea huduma mpya na mambo mengine ya 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 ni ya nane, na inaelezea “Mwongozo wa Mtindo wa Nambari ya Python”, ambayo ni mwongozo wa mtindo wa chatu.
Mikutano ya kutaja majina pia imetajwa.
Tazama kiunga hapo juu kwa maelezo zaidi, lakini kwa mfano, mtindo ufuatao wa uandishi unapendekezwa.
- Moduli
lowercase_underscore
- Herufi ndogo + inasisitiza
- Kifurushi
lowercase
- herufi zote ndogo
- Madarasa, Isipokuwa
CapitalizedWords
(CamelCase
)- Tumia herufi kubwa ya kwanza ya neno, bila kusisitiza
- Kazi, anuwai, na mbinu
lowercase_underscore
- Herufi ndogo + inasisitiza
- mara kwa mara
ALL_CAPS
- Herufi kubwa + inasisitiza
Walakini, ikiwa shirika lako halina mikutano yake ya kutaja majina, inashauriwa kufuata PEP8.