Дапушчальныя і несапраўдныя імёны і пагадненні аб найменні для ідэнтыфікатараў (напрыклад, імён зменных) у Python

Бізнэс

У Python ідэнтыфікатары (назвы зменных, функцый, класаў і г.д.) павінны быць вызначаны ў адпаведнасці з правіламі. Імёны, якія не адпавядаюць правілам, не могуць быць выкарыстаны ў якасці ідэнтыфікатараў і прывядуць да памылкі.

Тут прадстаўлена наступная інфармацыя.

  • Сімвалы, якія можна і нельга выкарыстоўваць у ідэнтыфікатарах (імёнах)
    • Сімвалы ASCII
    • Сімвал Unicode
      • нармалізацыя (напрыклад, па матэматыцы)
  • Праверце, ці з’яўляецца радок сапраўдным ідэнтыфікатарам: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

Аднак звярніце ўвагу, што падкрэсліванне ў пачатку можа мець асаблівае значэнне.

Сімвал Unicode

Пачынаючы з Python 3, сімвалы Unicode таксама могуць выкарыстоўвацца.

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

Не ўсе сімвалы Unicode могуць быць выкарыстаны, і ў залежнасці ад катэгорыі Unicode, некаторыя не могуць быць выкарыстаны. Напрыклад, нельга выкарыстоўваць такія сімвалы, як знакі прыпынку і піктаграмы.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Глядзіце афіцыйную дакументацыю для кодаў катэгорый Unicode, якія можна выкарыстоўваць.

У многіх выпадках няма ніякай перавагі ў выкарыстанні кітайскіх іерогліфаў і г.д., проста таму, што сімвалы Unicode таксама можна выкарыстоўваць (без памылак).

нармалізацыя (напрыклад, па матэматыцы)

Сімвалы Unicode пераўтворацца ў нармалізаваны выгляд NFKC для інтэрпрэтацыі. Напрыклад, алфавіт поўнай шырыні пераўтворыцца ў алфавіт паловы шырыні (сімвалы ASCII).

Звярніце ўвагу, што нават калі зыходны код паказвае іншы дысплей, ён лічыцца адным і тым жа аб’ектам і будзе перазапісаны.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Праверце, ці з’яўляецца радок сапраўдным ідэнтыфікатарам: isidentifier()

Ці з’яўляецца радок сапраўдным у якасці ідэнтыфікатара, можна праверыць з дапамогай метаду радка isidentifier().

Ён вяртае праўду, калі ён сапраўдны ў якасці ідэнтыфікатара, і false, калі ён несапраўдны.

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 Enhancement Proposal, дакумент, які апісвае новыя функцыі і іншыя аспекты 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 — восьмы, і ён апісвае «Кіраўніцтва па стылі для кода Python», гэта значыць кіраўніцтва па стылі для Python.

Таксама згадваюцца пагадненні аб найменні.

Для больш падрабязнай інфармацыі глядзіце спасылку вышэй, але, напрыклад, рэкамендуецца наступны стыль напісання.

  • Модуль
    • lowercase_underscore
    • Ніжні рэгістр + падкрэсліванне
  • Пакет
    • lowercase
    • усе маленькія літары
  • Класы, выключэнні
    • CapitalizedWords(CamelCase))
    • Напісвайце першую літару слова з вялікай літары, без падкрэслення
  • Функцыі, зменныя і метады
    • lowercase_underscore
    • Ніжні рэгістр + падкрэсліванне
  • пастаянная
    • ALL_CAPS
    • Вялікія літары + падкрэсліванне

Аднак, калі ў вашай арганізацыі няма ўласных пагадненняў аб найменні, рэкамендуецца прытрымлівацца PEP8.

Copied title and URL