Các tên hợp lệ và không hợp lệ và quy ước đặt tên cho số nhận dạng (ví dụ: tên biến) trong Python

Kinh doanh

Trong Python, các định danh (tên của biến, hàm, lớp, v.v.) cần được định nghĩa theo các quy tắc. Tên không tuân theo quy tắc không thể được sử dụng làm định danh và sẽ dẫn đến lỗi.

Thông tin sau được cung cấp ở đây.

  • Các ký tự có thể và không thể được sử dụng trong số nhận dạng (tên)
    • Ký tự ASCII
    • Ký tự Unicode
      • chuẩn hóa (ví dụ: trong toán học)
  • Kiểm tra xem chuỗi có phải là số nhận dạng hợp lệ hay không:isidentifier()
  • Các từ không thể được sử dụng làm định danh (tên) (từ dành riêng)
  • Những từ không được sử dụng làm định danh (tên)
  • Quy ước đặt tên cho PEP8

Mô tả sau được đưa ra bằng Python 3 và có thể khác trong Python 2.

Các ký tự có thể và không thể được sử dụng trong số nhận dạng (tên)

Cho biết các ký tự có thể và không thể được sử dụng làm định danh (tên).

Ngoài ra, mặc dù có rất nhiều điều cần viết về nhưng về cơ bản tất cả những gì bạn cần nhớ là những điều sau đây.

  • Sử dụng chữ hoa và chữ thường, số và dấu gạch dưới.
  • Chữ cái đầu tiên (đầu tiên) không được là số.

Ký tự ASCII

Các ký tự ASCII có thể được sử dụng làm định danh (tên) là bảng chữ cái viết hoa và viết thường (A ~ Z, a ~ z), số (0 ~ 9) và dấu gạch dưới (_). Bảng chữ cái có phân biệt chữ hoa chữ thường.

AbcDef_123 = 100
print(AbcDef_123)
# 100

Không thể sử dụng các ký hiệu khác ngoài dấu gạch dưới.

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

Ngoài ra, không thể sử dụng số ở đầu (chữ cái đầu tiên).

# 1_abc = 100
# SyntaxError: invalid token

Dấu gạch dưới cũng có thể được sử dụng ngay từ đầu.

_abc = 100
print(_abc)
# 100

Tuy nhiên, lưu ý rằng một dấu gạch dưới ở đầu có thể có một ý nghĩa đặc biệt.

Ký tự Unicode

Kể từ Python 3, các ký tự Unicode cũng có thể được sử dụng.

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

Không phải tất cả các ký tự Unicode đều có thể được sử dụng và tùy thuộc vào loại Unicode, một số không thể được sử dụng. Ví dụ, không thể sử dụng các ký hiệu như dấu chấm câu và chữ tượng hình.

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

# ☺ = 100
# SyntaxError: invalid character in identifier

Xem tài liệu chính thức về các mã danh mục Unicode có thể được sử dụng.

Trong nhiều trường hợp, không có lợi thế khi sử dụng các ký tự Trung Quốc, v.v., đơn giản vì các ký tự Unicode cũng có thể được sử dụng (không bị lỗi).

chuẩn hóa (ví dụ: trong toán học)

Các ký tự Unicode được chuyển đổi sang dạng chuẩn hóa NFKC để giải thích. Ví dụ: bảng chữ cái có độ rộng đầy đủ được chuyển đổi thành bảng chữ cái nửa độ rộng (ký tự ASCII).

Lưu ý rằng ngay cả khi mã nguồn hiển thị một màn hình khác, nó được coi là cùng một đối tượng và sẽ bị ghi đè.

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

Kiểm tra xem chuỗi có phải là số nhận dạng hợp lệ không: isidentifier ()

Có thể kiểm tra xem một chuỗi có hợp lệ như một định danh hay không bằng phương thức chuỗi isidentifier ().

Nó trả về true nếu nó hợp lệ như một định danh và false nếu nó không hợp lệ.

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

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

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

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

Các từ không thể được sử dụng làm định danh (tên) (từ dành riêng)

Có một số từ (từ dành riêng) không thể được sử dụng làm định danh ngay cả khi chúng là chuỗi hợp lệ làm định danh (tên).

Vì một từ dành riêng là một chuỗi hợp lệ làm định danh, isidentifier () trả về true, nhưng sẽ xảy ra lỗi nếu nó được sử dụng làm định danh.

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

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

Để nhận danh sách các từ dành riêng và kiểm tra xem một chuỗi có phải là từ dành riêng hay không, hãy sử dụng mô-đun từ khóa của thư viện chuẩn.

Những từ không được sử dụng làm định danh (tên)

Ví dụ: tên của các hàm tích hợp sẵn của Python có thể được sử dụng làm định danh, vì vậy bạn có thể gán giá trị mới cho chúng dưới dạng biến.

Ví dụ, len () là một hàm dựng sẵn trả về số phần tử trong một danh sách hoặc số ký tự trong một chuỗi.

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

print(len('abc'))
# 3

Nếu bạn gán giá trị mới cho tên len này, chức năng gốc sẽ bị ghi đè và không sử dụng được. Lưu ý rằng không có lỗi hoặc cảnh báo nào được in khi gán giá trị mới.

print(len('abc'))
# 3

len = 100
print(len)
# 100

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

Một sai lầm phổ biến khác là sử dụng list = [0, 1, 2], điều này khiến bạn không thể sử dụng list (). Hãy cẩn thận.

Quy ước đặt tên cho PEP8

PEP là viết tắt của Python Enhancement Proposal, một tài liệu mô tả các tính năng mới và các khía cạnh khác của 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 là cái thứ tám và nó mô tả “Hướng dẫn kiểu cho mã Python”, tức là hướng dẫn kiểu cho Python.

Quy ước đặt tên cũng được đề cập.

Xem liên kết ở trên để biết thêm chi tiết, nhưng ví dụ, phong cách viết sau đây được khuyến nghị.

  • Mô-đun
    • lowercase_underscore
    • Chữ thường + dấu gạch dưới
  • Bưu kiện
    • lowercase
    • tất cả các chữ cái thường
  • Lớp học, Ngoại lệ
    • CapitalizedWords(CamelCase)
    • Viết hoa chữ cái đầu tiên của từ, không có gạch dưới
  • Hàm, biến và phương thức
    • lowercase_underscore
    • Chữ thường + dấu gạch dưới
  • hằng số
    • ALL_CAPS
    • Chữ in hoa + gạch dưới

Tuy nhiên, nếu tổ chức của bạn không có quy ước đặt tên riêng, thì bạn nên tuân theo PEP8.