Navên derbasdar û nederbasdar û peymanên binavkirinê yên ji bo nasnameyan (mînak navên guhêrbar) di Python de

Dikan

Di Python de, pêdivî ye ku nasname (navên guhêrbar, fonksiyon, çîn, hwd.) li gorî qaîdeyan bêne destnîşankirin. Navên ku li gorî qaîdeyan tevnegerin, nikarin wekî nasname werin bikar anîn û dê xeletiyek çêbibe.

Agahiyên jêrîn li vir têne pêşkêş kirin.

  • Karakterên ku dikarin û nikarin di navan de bêne bikar anîn (nav)
    • tîpên ASCII
    • Karaktera Unicode
      • normalîzekirin (mînak di matematîkê de)
  • Kontrol bikin ka string nasnameyek derbasdar e:isidentifier()
  • Peyvên ku nikarin wekî nasname (nav) bên bikaranîn (peyvên parastî)
  • Peyvên ku divê wekî nasname (nav) neyên bikaranîn
  • Peymanên navên ji bo PEP8

Danasîna jêrîn di Python 3 de tê dayîn, û dibe ku di Python 2 de cûda be.

Karakterên ku dikarin û nikarin di navan de bêne bikar anîn (nav)

Karakterên ku dikarin û nekarin wekî nasname (nav) werin bikar anîn nîşan dide.

Wekî din, her çend gelek tişt hene ku meriv li ser binivîsîne, di bingeh de ya ku hûn hewce ne ku ji bîr bikin jêrîn e.

  • Tîpên mezin û biçûk, jimare û binxetê bikar bînin.
  • Tîpa yekem (yekemîn) nikare bibe jimar.

tîpên ASCII

Karakterên ASCII yên ku dikarin wekî nasname (nav) werin bikar anîn, alfabeyên mezin û piçûk (A~Z,a~z), jimar (0~9), û binî (_) in. Alfabe bi qederê hesas e.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Sembolên ji bilî binxetê nayên bikar anîn.

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

Her weha, hejmar di destpêkê de (herfa yekem) nayê bikar anîn.

# 1_abc = 100
# SyntaxError: invalid token

Di destpêkê de xêzkirin jî dikarin werin bikar anîn.

_abc = 100
print(_abc)
# 100

Lêbelê, bala xwe bidin ku di destpêkê de binxetek dikare wateyek taybetî hebe.

Karaktera Unicode

Ji Python 3, karakterên Unicode jî dikarin werin bikar anîn.

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

Hemî tîpên Unicode nayên bikar anîn, û li gorî kategoriya Unicode, hin kes nikarin werin bikar anîn. Mînak, sembolên wek xalbendî û nîgaran nikarin bên bikaranîn.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Ji bo kodên kategoriya Unicode ku dikarin werin bikar anîn, belgeya fermî bibînin.

Di pir rewşan de, ji bo karanîna tîpên Chineseînî, û hwd, sûdmendiyek tune, ji ber ku karakterên Unicode jî dikarin bêne bikar anîn (bê xelet).

normalîzekirin (mînak di matematîkê de)

Karakterên Unicode ji bo şîrovekirinê vediguherin forma normalîzekirî NFKC. Mînakî, alfabeyên tev-fireh têne veguheztin alfabeyên nîv-fireh (karakterên ASCII).

Têbînî ku her çend koda çavkaniyê dîmenek cûda nîşan bide, ew heman tişt tê hesibandin û dê were nivîsandin.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Kontrol bikin ka string nasnameyek derbasdar e: isidentifier()

Gelo rêzek wekî nasnameyek derbasdar e an na, dikare bi rêbaza rêzikê isidentifier() were kontrol kirin.

Ger wekî nasnameyek derbasdar be rast vedigere, ger nederbasdar be jî xelet vedigere.

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

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

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

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

Peyvên ku nikarin wekî nasname (nav) bên bikaranîn (peyvên parastî)

Hin peyv (peyvên parastî) hene ku wekî nasnav (nav) rêzikên derbasdar bin jî, nikarin wekî nasname werin bikar anîn.

Ji ber ku peyva veqetandî wek nasnameyek rêzek derbasdar e, isidentifier() rast vedigere, lê heke ew wekî nasnameyek were bikar anîn xeletiyek çê dibe.

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

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

Ji bo ku hûn navnîşek peyvên veqetandî bistînin û kontrol bikin ka rêzek peyvek veqetandî ye, modula peyva key ya pirtûkxaneya standard bikar bînin.

Peyvên ku divê wekî nasname (nav) neyên bikaranîn

Mînakî, navên fonksiyonên çêkirî yên Python-ê dikarin wekî nasname werin bikar anîn, ji ber vê yekê hûn dikarin wekî guhêrbar nirxên nû ji wan re destnîşan bikin.

Mînakî, len() fonksiyonek çêkirî ye ku hejmara hêmanên di lîsteyê de an jî hejmara tîpên di rêzekê de vedigerîne.

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

print(len('abc'))
# 3

Ger hûn nirxek nû ji vê navê lenê re bidin, fonksiyona orîjînal dê were nivîsandin û neyê bikar anîn. Bala xwe bidinê ku di dema danasîna nirxek nû de xeletî an hişyariyek nayê çap kirin.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Çewtiyek din a hevpar ev e ku meriv navnîşê = [0, 1, 2] bikar bîne, ku karanîna lîsteyê (). Baldar be.

Peymanên navên ji bo PEP8

PEP ji bo Python Enhancement Proposal radiweste, belgeyek ku taybetmendiyên nû û aliyên din ên Python vedibêje.

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 heştemîn e, û ew “Rêbera şêwazê ji bo koda Python”, ango rêbernameya şêwazê ji bo Python vedibêje.

Peymanên navan jî têne gotin.

Ji bo bêtir agahdarî li lînka li jor binêre, lê ji bo nimûne, şêwaza nivîsandina jêrîn tê pêşniyar kirin.

  • Module
    • lowercase_underscore
    • Bi tîpên piçûk + binî
  • Pakêt
    • lowercase
    • hemû tîpên biçûk
  • Ders, Îstîsnayên
    • CapitalizedWords(CamelCase)
    • Tîpa yekem a peyvê bi sernavî binivîsin, bê xêzkirin
  • Fonksiyon, guherbar û rêbaz
    • lowercase_underscore
    • Bi tîpên piçûk + binî
  • çikyayî
    • ALL_CAPS
    • Tîpên mezin + binî

Lêbelê, ger rêxistina we peymanên navlêkirina xwe tune, tê pêşniyar kirin ku PEP8 bişopînin.