Nama yang sah dan tidak sah serta konvensyen penamaan untuk pengecam (cth. nama pembolehubah) dalam Python

Perniagaan

Dalam Python, pengecam (nama pembolehubah, fungsi, kelas, dll.) perlu ditakrifkan mengikut peraturan. Nama yang tidak mengikut peraturan tidak boleh digunakan sebagai pengecam dan akan mengakibatkan ralat.

Maklumat berikut disediakan di sini.

  • Aksara yang boleh dan tidak boleh digunakan dalam pengecam (nama)
    • aksara ASCII
    • aksara Unikod
      • normalisasi (cth. dalam matematik)
  • Semak sama ada rentetan itu ialah pengecam yang sah:isidentifier()
  • Perkataan yang tidak boleh digunakan sebagai pengecam (nama) (perkataan simpanan)
  • Perkataan yang tidak boleh digunakan sebagai pengecam (nama)
  • Konvensyen penamaan untuk PEP8

Penerangan berikut diberikan dalam Python 3, dan mungkin berbeza dalam Python 2.

Aksara yang boleh dan tidak boleh digunakan dalam pengecam (nama)

Menunjukkan aksara yang boleh dan tidak boleh digunakan sebagai pengecam (nama).

Di samping itu, walaupun terdapat banyak perkara untuk ditulis, pada asasnya semua yang anda perlu ingat ialah perkara berikut.

  • Gunakan huruf besar dan kecil, nombor dan garis bawah.
  • Huruf pertama (pertama) tidak boleh menjadi nombor.

aksara ASCII

Aksara ASCII yang boleh digunakan sebagai pengecam (nama) ialah huruf besar dan huruf kecil (A~Z,a~z), nombor (0~9), dan garis bawah (_). Abjad adalah peka huruf besar-besaran.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Simbol selain garis bawah tidak boleh digunakan.

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

Juga, nombor tidak boleh digunakan pada permulaan (huruf pertama).

# 1_abc = 100
# SyntaxError: invalid token

Garis bawah juga boleh digunakan pada permulaan.

_abc = 100
print(_abc)
# 100

Walau bagaimanapun, ambil perhatian bahawa garis bawah pada permulaan mungkin mempunyai makna yang istimewa.

aksara Unikod

Sejak Python 3, aksara Unicode juga boleh digunakan.

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

Tidak semua aksara Unicode boleh digunakan, dan bergantung pada kategori Unicode, sesetengahnya tidak boleh digunakan. Contohnya, simbol seperti tanda baca dan piktogram tidak boleh digunakan.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Lihat dokumentasi rasmi untuk kod kategori Unicode yang boleh digunakan.

Dalam kebanyakan kes, tiada kelebihan menggunakan aksara Cina, dsb., semata-mata kerana aksara Unicode juga boleh digunakan (tanpa ralat).

normalisasi (cth. dalam matematik)

Aksara Unicode ditukar kepada bentuk NFKC yang dinormalkan untuk tafsiran. Sebagai contoh, abjad lebar penuh ditukar kepada abjad separuh lebar (aksara ASCII).

Ambil perhatian bahawa walaupun kod sumber menunjukkan paparan yang berbeza, ia dianggap sebagai objek yang sama dan akan ditimpa.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Semak sama ada rentetan itu ialah pengecam yang sah: identifier()

Sama ada rentetan sah atau tidak sebagai pengecam boleh disemak dengan kaedah rentetan identifier().

Ia mengembalikan benar jika ia sah sebagai pengecam, dan palsu jika ia tidak sah.

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

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

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

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

Perkataan yang tidak boleh digunakan sebagai pengecam (nama) (perkataan simpanan)

Terdapat beberapa perkataan (perkataan simpanan) yang tidak boleh digunakan sebagai pengecam walaupun ia adalah rentetan yang sah sebagai pengecam (nama).

Memandangkan perkataan yang dikhaskan ialah rentetan yang sah sebagai pengecam, identifier() mengembalikan benar, tetapi ralat berlaku jika ia digunakan sebagai pengecam.

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

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

Untuk mendapatkan senarai perkataan yang dikhaskan dan untuk menyemak sama ada rentetan ialah perkataan yang dikhaskan, gunakan modul kata kunci pustaka standard.

Perkataan yang tidak boleh digunakan sebagai pengecam (nama)

Nama-nama fungsi terbina dalam Python, sebagai contoh, boleh digunakan sebagai pengecam, jadi anda boleh menetapkan nilai baharu kepada mereka sebagai pembolehubah.

Contohnya, len() ialah fungsi terbina dalam yang mengembalikan bilangan elemen dalam senarai atau bilangan aksara dalam rentetan.

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

print(len('abc'))
# 3

Jika anda menetapkan nilai baharu pada nama len ini, fungsi asal akan ditimpa dan menjadi tidak boleh digunakan. Ambil perhatian bahawa tiada ralat atau amaran akan dicetak apabila memberikan nilai baharu.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Satu lagi kesilapan biasa ialah menggunakan list = [0, 1, 2], yang menjadikannya mustahil untuk menggunakan list(). Berhati-hati.

Konvensyen penamaan untuk PEP8

PEP adalah singkatan kepada Python Enhancement Proposal, dokumen yang menerangkan ciri baharu dan aspek lain 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 ialah yang kelapan, dan ia menerangkan “Panduan Gaya untuk Kod Python”, iaitu, panduan gaya untuk Python.

Konvensyen penamaan juga disebut.

Lihat pautan di atas untuk butiran lanjut, tetapi sebagai contoh, gaya penulisan berikut disyorkan.

  • Modul
    • lowercase_underscore
    • Huruf kecil + garis bawah
  • Pakej
    • lowercase
    • semua huruf kecil
  • Kelas, Pengecualian
    • CapitalizedWords(CamelCase)
    • Gunakan huruf besar pada huruf pertama sesuatu perkataan, tanpa garis bawah
  • Fungsi, pembolehubah, dan kaedah
    • lowercase_underscore
    • Huruf kecil + garis bawah
  • tetap
    • ALL_CAPS
    • Huruf besar + garis bawah

Walau bagaimanapun, jika organisasi anda tidak mempunyai konvensyen penamaan sendiri, adalah disyorkan untuk mengikuti PEP8.

Copied title and URL