Jeneng sing valid lan ora valid lan konvensi penamaan kanggo pengenal (kayata jeneng variabel) ing Python

Bisnis

Ing Python, pengidentifikasi (jeneng variabel, fungsi, kelas, lsp) kudu ditetepake miturut aturan. Jeneng sing ora netepi aturan ora bisa digunakake minangka pengenal lan bakal nyebabake kesalahan.

Informasi ing ngisor iki diwenehake ing kene.

  • Karakter sing bisa lan ora bisa digunakake ing pengenal (jeneng)
    • Tokoh ASCII
    • Watake Unicode
      • normalisasi (kayata ing matématika)
  • Priksa manawa senar kasebut minangka pengenal sing bener:isidentifier()
  • Tembung sing ora bisa digunakake minangka pengenal (jeneng) (tembung cadhangan)
  • Tembung sing ora kena digunakake minangka pengenal (jeneng)
  • Konvensi penamaan kanggo PEP8

Katrangan ing ngisor iki diwenehi ing Python 3, lan bisa uga beda ing Python 2.

Karakter sing bisa lan ora bisa digunakake ing pengenal (jeneng)

Nuduhake karakter sing bisa lan ora bisa digunakake minangka pengenal (jeneng).

Kajaba iku, sanajan ana akeh perkara sing kudu ditulis, umume sing kudu sampeyan eling yaiku ing ngisor iki.

  • Gunakake huruf gedhe, huruf cilik lan cilik.
  • Huruf pertama (pertama) ora bisa nomer.

Tokoh ASCII

Karakter ASCII sing bisa digunakake minangka pengenal (jeneng) yaiku abjad huruf gedhe lan huruf cilik (A ~ Z, a ~ z), angka (0 ~ 9), lan garis ngisor (_). Alfabet kasebut sensitif karo huruf cilik.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Simbol liyane kajaba garis ngisor ora bisa digunakake.

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

Uga, angka ora bisa digunakake ing wiwitan (huruf pertama).

# 1_abc = 100
# SyntaxError: invalid token

Underscores uga bisa digunakake ing wiwitan.

_abc = 100
print(_abc)
# 100

Nanging, elinga yen underscore ing wiwitan bisa uga duwe teges khusus.

Watake Unicode

Wiwit Python 3, karakter Unicode uga bisa digunakake.

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

Ora kabeh karakter Unicode bisa digunakake, lan gumantung karo kategori Unicode, sawetara ora bisa digunakake. Contone, simbol kayata tandha wacan lan piktogram ora bisa digunakake.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Deleng dokumentasi resmi kode kategori Unicode sing bisa digunakake.

Akeh kasus, ora ana kauntungane nggunakake karakter Tionghoa, lsp, mung amarga karakter Unicode uga bisa digunakake (tanpa kesalahan).

normalisasi (kayata ing matématika)

Karakter Unicode diowahi dadi NFKC sing normal kanggo interpretasi. Contone, abjad jembar kebak diowahi dadi abjad setengah amba (karakter ASCII).

Elinga yen sanajan kode sumber nuduhake tampilan sing beda, iki dianggep obyek sing padha lan bakal ditimpa.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Priksa manawa senar minangka pengenal sing bener: isidentifier ()

Apa senar sing bener minangka pengenal bisa dicenthang kanthi cara senar isidentifier ().

Wangsul bener yen bener minangka pengenal, lan salah yen ora valid.

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

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

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

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

Tembung sing ora bisa digunakake minangka pengenal (jeneng) (tembung cadhangan)

Ana sawetara tembung (tembung sing dilindhungi undhang-undhang) sing ora bisa digunakake minangka pengenal sanajan senar sing bener minangka pengenal (jeneng).

Amarga tembung sing dilindhungi undhang-undhang minangka string sing bener minangka pengenal, isidentifier () ngasilake sing bener, nanging ana kesalahan yen digunakake minangka pengenal.

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

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

Kanggo entuk dhaptar tembung sing dilindhungi undhang-undhang lan kanggo mriksa manawa senar minangka tembung sing dilindhungi undhang-undhang, gunakake modul tembung kunci perpustakaan standar.

Tembung sing ora kena digunakake minangka pengenal (jeneng)

Jeneng fungsi internal Python, kayata, bisa digunakake minangka pengenal, dadi sampeyan bisa menehi nilai-nilai anyar minangka variabel.

Contone, len () minangka fungsi internal sing ngasilake jumlah elemen ing dhaptar utawa jumlah karakter ing senar.

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

print(len('abc'))
# 3

Yen sampeyan menehi nilai anyar menyang jeneng iki len, fungsi asli bakal ditimpa lan ora bisa digunakake. Elinga yen ora ana kesalahan utawa peringatan sing bakal dicithak nalika menehi nilai anyar.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Kesalahan umum liyane yaiku nggunakake dhaptar = [0, 1, 2], sing ora bisa nggunakake dhaptar (). Ati-ati

Konvensi penamaan kanggo PEP8

PEP minangka singkatan saka Proposal Peningkatan Python, sawijining dokumen sing nggambarake fitur-fitur anyar lan aspek-aspek Python liyane.

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 minangka nomer wolu, lan nerangake “Pandhuan Gaya Kode Python”, yaiku pandhuan gaya kanggo Python.

Konvensi jeneng uga kasebut.

Deleng link ing ndhuwur kanggo rincian liyane, nanging contone, gaya nulis ing ngisor iki.

  • Modul
    • lowercase_underscore
    • Bagean cilik + garis ngisor
  • Paket
    • lowercase
    • kabeh aksara cilik
  • Kelas, Pengecualian
    • CapitalizedWords(CamelCase)
    • Kapitalisasi huruf kapisan tembung, ora ana garis ngisor
  • Fungsi, variabel, lan cara
    • lowercase_underscore
    • Bagean cilik + garis ngisor
  • pancet
    • ALL_CAPS
    • Huruf gedhe + garis ngisor

Nanging, yen organisasi sampeyan ora duwe konvensi penamaan dhewe, disaranake ngetutake PEP8.