Quy ước đặt tên python

Ở bài viết trước, PEP8 - Chuẩn Kết Nối Toàn Cầu Của Python Dev [Phần 1] chúng ta đã cùng nhau tìm hiểu về tầm quan trọng của chuẩn PEP-8 và một số chỉ dẫn liên quan đến "Trình bày các mã nguồn . Bài viết tiếp theo này, chúng ta sẽ cùng nhau tìm hiểu về các đường dẫn liên quan đến việc đặt tên [đặt tên] được nêu trong PEP-8

Bài viết này sẽ nhấn mạnh vào hai vấn đề.
- Quy tắc đặt tên theo tiêu chuẩn PEP8 của Python
- Khi nào sử dụng

class RandomNumber:
    
    def __init__[self]:
        pass
1,
class RandomNumber:
    
    def __init__[self]:
        pass
2 [dấu gạch dưới & dấu gạch dưới kép]

Nói về việc đặt tên trong các chương trình phần mềm, điều đầu tiên cần phải nhấn mạnh [với tất cả các ngôn ngữ lập trình, không riêng gì python] đó là đặt tên có ý nghĩa, liên quan đến đích xuất hiện của biến . Việc đặt tên vô nghĩa để người khác đọc mã và lại phải mất thời gian tìm hiểu mục đích sử dụng trong ngữ cảnh hiện tại [ngoại trừ trường hợp cố định thực hiện mã "rối"]. Các bạn có thể tìm đọc "Chương 2 - Những cái tên ý nghĩa - cuốn sách Clean Code của Uncle Bod"

Đặt tên - Các quy ước chung cho việc đặt tên trong Python

PEP-8 gợi ý các kiểu đặt tên biến [python được gọi là

class RandomNumber:
    
    def __init__[self]:
        pass
3],
class RandomNumber:
    
    def __init__[self]:
        pass
4,
class RandomNumber:
    
    def __init__[self]:
        pass
5,. khá độc đáo và khác biệt với các ngôn ngữ khác. Các quy ước [conventions] này giúp dễ dàng phân biệt từng loại tương ứng khi đọc mã. Quy ước chung của cách đặt tên bao gồm

  • Viết thường tất cả các ký tự [chữ thường]
  • Viết hoa tất cả các ký tự [chữ hoa]
  • Nếu một tên có nhiều từ
    • Nối giữa các từ bằng ký tự gạch dưới
      class RandomNumber:
          
          def __init__[self]:
              pass
      1. Lower_case_with_underscores, UPPER_CASE_WITH_UNDERSCORES
    • Viết hoa các chữ cái đầu tiên của một từ. CapWords, CamelCase
    • Nếu các từ có ký tự viết tắt, hãy lưu ý viết hoa toàn bộ ký tự viết tắt. Ví dụ. Máy chủ HTTPLỗi

Ngoài các cách trên, còn một số cách đặt tên khác nhưng ít được sử dụng [không được khuyến nghị sử dụng]

  • Viết thường từ đầu tiên và viết hoa các chữ cái đầu của các từ tiếp theo. mixCase, theUglyName,
  • Viết hoa các chữ cái đầu tiên và sử dụng ký tự gạch dưới để nối các từ. Viết hoa_Từ_Với_Gạch dưới, No_Name,

Trong quá trình làm việc, để tập hợp nhóm theo mục đích sử dụng, các thiết lập chương trình có thể tiền tố và phía trước biến, chức năng,. nhưng vẫn theo quy tắc đặt tên chung trên

Ví dụ. gom các thuộc tính dữ liệu trả về trong hệ điều hành. bắt đầu[]. st_mode, st_ino, st_dev,. [tham khảo. https. // tài liệu. con trăn. org/2/library/os. html#os. thống kê]

Có một số lưu ý cần nhớ trong quy tắc đặt tên, tôi đã nêu trong bài viết gần đây. 3 Error Thường An Khi Mới Làm Quen Với Python. Các bạn có thể tham khảo tại mục "1. Đặt trùng tên biến và chức năng với từ khóa"

Ngoài ra còn có một số lưu ý nhỏ khác như.
- Không nên đặt tên bằng 01 ký tự đơn như. tôi, j, k, l, m, n.
- Trong trường hợp chữ thường, nên dùng l [chữ l-L] và số 1, cũng như ký tự o [chữ o-O] và số 0. This job will limit the working display not a Clear Characters [do font chữ].

Từ các quy ước chung trên, PEP-8 đưa ra các tiêu đề liên quan đến việc đặt tên cụ thể cho các trường hợp

1. Đặt tên cho các mô-đun/gói

Trong python, mỗi tệp được coi là một mô-đun, mỗi thư mục là một gói. Quy tắc đặt tên của mô-đun và gói là viết thường tất cả các ký tự, nếu có nhiều từ trong tên, sử dụng ký tự

class RandomNumber:
    
    def __init__[self]:
        pass
1 để nối giữa các từ


Ví dụ

├── random_package
    ├── __init__.py
    ├── random_number.py
    ├── random_string.py

Một số mô-đun được kế thừa từ C/C++, có thể đặt tên cho ký tự _ ở phía trước.
Ví dụ. _ổ cắm

Lưu ý. Khi đặt tên mô-đun, gói hãy cố gắng không đặt trùng tên với các mô-đun/gói đã có sẵn của hệ thống. Như trong ví dụ trên, tôi đã đặt gói là Random_package để phân biệt với mô-đun ngẫu nhiên đã có sẵn

Nếu dev đặt tên mô-đun/gói là ngẫu nhiên, khi thực hiện

class RandomNumber:
    
    def __init__[self]:
        pass
0 trình thông dịch của Python sẽ khó phân biệt cần nhập mô-đun ngẫu nhiên có của python hay mô-đun nhập ngẫu nhiên do dev viết ra [thường thì sẽ nhập theo ngữ cảnh/vị trí

2. Đặt tên cho các biến dữ liệu [biến/tên], chức năng

Tên của các hàm, biến được đặt tên theo định dạng chữ viết thông thường, nếu có nhiều từ sẽ nối với nhau bằng ký tự gạch dưới

Ví dụ

class RandomNumber:
    
    def __init__[self]:
        pass
1
class RandomNumber:
    
    def __init__[self]:
        pass
2

Biến dữ liệu được đặt là giá trị hằng số [các dữ liệu không thay đổi], thường được viết hoa toàn bộ các ký tự và có dấu _ nối giữa các từ

ví dụ.
______13

class RandomNumber:
    
    def __init__[self]:
        pass
4

Đôi lúc trong quá trình khai báo và sử dụng biến, có những biến dữ liệu không được sử dụng để làm gì sẽ được khai báo là dấu

class RandomNumber:
    
    def __init__[self]:
        pass
1 [ý nghĩa là "không quan tâm"]

ví dụ

class RandomNumber:
    
    def __init__[self]:
        pass
6
class RandomNumber:
    
    def __init__[self]:
        pass
7
class RandomNumber:
    
    def __init__[self]:
        pass
8

3. Đặt tên cho lớp và thuộc tính/chức năng trong lớp

Các lớp trong Python được đặt tên theo định dạng CapitalizedWord [hoặc CamelCase]

Ví dụ.  

class RandomNumber:
    
    def __init__[self]:
        pass

Một số lớp đặc biệt trong Python được kết thúc bằng một từ khóa đặc biệt, ví dụ. Error cho các lớp thuộc phân lớp Ngoại lệ. ValueError, NameError,

Quy ước đặt tên với thuộc tính/chức năng trong lớp

  • Default định, các thuộc tính/chức năng của một lớp được khai báo là công khai, quy tắc đặt tên như đặt tên biến [lower_case_with_underscore]
  • If khai Báo được bảo vệ , đặt 01 ký tự _ ở đầu tiên. _protected_attribute_name
  • Nếu khai Báo riêng, đặt 02 ký tự _ ở đầu tiên. __private_attribute_name  [2 dấu gạch dưới liên tiếp]

Quy ước khai Báo tham số truyền vào hàm trong lớp

  • Các hàm nằm trong một lớp, luôn phải có từ khóa tự là tên của tham số đầu [để tham chiếu về đối tượng]
  • Các hàm dạng "phương thức lớp", luôn phải có từ khóa cls là tên của tham số đầu tiên [hiện tại, các dev thường sử dụng trang trí hơn là sử dụng phương thức lớp]

Ví dụ.  

class RandomNumber:
    
    def __init__[self]:
        pass
0

Tổng kết

Ngoài việc mang ý nghĩa về "các tên có ý nghĩa", việc đặt tên trong Python còn mang ý nghĩa về "ngữ pháp" [cú pháp] của chương trình thông qua việc sử dụng các ký tự

class RandomNumber:
    
    def __init__[self]:
        pass
1 và
class RandomNumber:
    
    def __init__[self]:
        pass
2 trong lập trình hướng đối tượng [Object] .  

Hy vọng, thông qua bài viết ngắn này, các bạn sẽ có "từ khóa" để tiếp tục tìm hiểu về việc đặt tên sao cho hiệu quả [clean-code] và tự tin với việc sử dụng OOP trong Python [rồi đợi]. . Cảm ơn các bạn đã đọc bài viết.  

Chủ Đề