Python -дағы идентификаторлар үшін жарамды және жарамсыз атаулар мен атау шарттары (мысалы, айнымалы атаулар)

Іскерлік

Python -да ережелерге сәйкес идентификаторларды (айнымалылардың, функциялардың, сыныптардың және т.б. атауларын) анықтау қажет. Ережеге сәйкес келмейтін атаулар идентификатор ретінде қолданыла алмайды және қатеге әкеледі.

Мұнда келесі ақпарат берілген.

  • Идентификаторларда қолдануға болатын және қолдануға болмайтын таңбалар (атаулар)
    • ASCII таңбалары
    • Юникод таңбасы
      • қалыпқа келтіру (мысалы, математикада)
  • Жолдың жарамды идентификатор екенін тексеріңіз:isidentifier()
  • Идентификатор (атау) ретінде қолдануға болмайтын сөздер (сақталған сөздер)
  • Идентификатор ретінде қолданылмайтын сөздер (атаулар)
  • PEP8 үшін атау шарттары

Келесі сипаттама Python 3 -те берілген, ал Python 2 -де басқаша болуы мүмкін.

Идентификаторларда қолдануға болатын және қолдануға болмайтын таңбалар (атаулар)

Идентификатор (атаулар) ретінде қолдануға болатын және болмайтын таңбаларды көрсетеді.

Сонымен қатар, жазатын нәрселер көп болса да, негізінен есте сақтау қажет:

  • Үлкен және кіші әріптерді, сандар мен астын сызуды қолданыңыз.
  • Бірінші (бірінші) әріп сан бола алмайды.

ASCII таңбалары

Идентификаторлар (атаулар) ретінде қолдануға болатын ASCII таңбалары – үлкен және кіші әріптер (A ~ Z, a ~ z), сандар (0 ~ 9) және астынғы сызықтар (_). Әліпби регистрді ескереді.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Астыңғы сызықтан басқа белгілерді қолдануға болмайды.

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

Сондай -ақ, сандарды басында қолдануға болмайды (бірінші әріп).

# 1_abc = 100
# SyntaxError: invalid token

Астыңғы сызықтарды басында да қолдануға болады.

_abc = 100
print(_abc)
# 100

Алайда, астындағы астын сызудың ерекше мәні болуы мүмкін екенін ескеріңіз.

Юникод таңбасы

Python 3 болғандықтан, Юникод таңбаларын да қолдануға болады.

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

Юникод таңбаларының барлығын қолдануға болмайды, ал Юникод санатына байланысты кейбірін қолдануға болмайды. Мысалы, тыныс белгілері мен пиктограммалар сияқты белгілерді қолдануға болмайды.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Қолдануға болатын Юникод санатының кодтары туралы ресми құжаттаманы қараңыз.

Көптеген жағдайларда қытай таңбаларын қолданудың артықшылығы жоқ, себебі Юникод таңбаларын да қолдануға болады (қатесіз).

қалыпқа келтіру (мысалы, математикада)

Юникод таңбалары түсіндіру үшін NFKC нормаланған түріне түрлендіріледі. Мысалы, толық енді алфавиттер жартылай ендік алфавитке (ASCII символдары) айналады.

Назар аударыңыз, егер бастапқы код басқа дисплейді көрсетсе де, ол бір объект болып саналады және қайта жазылады.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Жолдың жарамды идентификатор екенін тексеріңіз: isidentifier ()

Жол идентификатор ретінде жарамды ма, жоқ па, оны isidentifier () жолының әдісімен тексеруге болады.

Егер ол идентификатор ретінде жарамды болса, ол шын мәнін қайтарады, ал егер ол жарамсыз болса, жалған болады.

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

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

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

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

Идентификатор (атау) ретінде қолдануға болмайтын сөздер (сақталған сөздер)

Идентификатор (атаулар) ретінде жарамды жолдар болса да, идентификатор ретінде қолдануға болмайтын кейбір сөздер (сақталған сөздер) бар.

Сақталған сөз идентификатор ретінде жарамды жол болғандықтан, isidentifier () ақиқатты қайтарады, бірақ егер ол идентификатор ретінде қолданылса қате пайда болады.

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

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

Сақталған сөздердің тізімін алу және жолдың сақталған сөз екенін тексеру үшін стандартты кітапхананың кілт сөз модулін қолданыңыз.

Идентификатор ретінде қолданылмайтын сөздер (атаулар)

Python кіріктірілген функцияларының атаулары, мысалы, идентификатор ретінде пайдаланылуы мүмкін, сондықтан оларға жаңа мәндерді айнымалы ретінде тағайындауға болады.

Мысалы, len ()-тізімдегі элементтер санын немесе жолдағы символдар санын қайтаратын кіріктірілген функция.

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

print(len('abc'))
# 3

Егер сіз len атауына жаңа мән берсеңіз, бастапқы функция қайта жазылады және жарамсыз болады. Жаңа мәнді тағайындау кезінде ешқандай қате немесе ескерту басып шығарылмайтынын ескеріңіз.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Тағы бір жиі кездесетін қате – list = [0, 1, 2] пайдалану, бұл list () функциясын қолдануға мүмкіндік бермейді. Сақ болыңыз.

PEP8 үшін атау шарттары

PEP – бұл Python -дың жаңа мүмкіндіктері мен басқа аспектілерін сипаттайтын құжат Python Enhancement Proposal дегенді білдіреді.

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 сегізінші болып табылады және ол «Python кодының стильдік нұсқаулығын», яғни Python стилінің нұсқаулығын сипаттайды.

Атау шарттары да айтылады.

Толық ақпарат алу үшін жоғарыдағы сілтемені қараңыз, бірақ, мысалы, келесі жазу стилі ұсынылады.

  • Модуль
    • lowercase_underscore
    • Кіші әріп + асты сызық
  • Пакет
    • lowercase
    • барлық кіші әріптер
  • Сыныптар, ерекшеліктер
    • CapitalizedWords(CamelCase)
    • Сөздің бірінші әрпін бас әріппен жазыңыз, астын сызу жоқ
  • Функциялар, айнымалылар және әдістер
    • lowercase_underscore
    • Кіші әріп + асты сызық
  • тұрақты
    • ALL_CAPS
    • Бас әріптер + астын сызу

Дегенмен, ұйымыңыздың жеке атау конвенциялары болмаса, PEP8-ді орындау ұсынылады.