Tên dành riêng trong 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 đoạn mã nguồn" (có cả lý thuyết và thực hành). Bài viết tiếp theo này, chúng ta sẽ cùng nhau tìm hiểu về các chỉ dẫn liên quan đến đặt tên (naming) được nêu trong PEP-8. Show
Bài viết này sẽ nhấn mạnh vào hai vấn đến: Nói về đặ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 mục đích xuất hiện của biến dữ liệu, function, class,... Tránh việc đặt tên vô nghĩa để người khác đọc code 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 (trừ trường hợp cố tình thực hiện làm "rối" code). Các bạn có thể tìm đọc "Chapter 2 - Meaningful Names - cuốn sách Clean Code của Uncle Bod". Naming - Các quy ước chung cho việc đặt tên trong Python.PEP-8 gợi ý các kiểu đặt tên các biến (python được gọi là
Ngoài các cách trên, còn một số cách đặt tên khác nhưng ít được dùng (không được khuyên dùng):
Trong quá trình làm việc, để gom nhóm theo mục đích sử dụng, các lập trình có thể tiền tố và phía trước biến, function, ... nhưng vẫn theo quy tắc đặt tên chung trên. Ví dụ: gom các attributes thuộc dữ liệu trả về trong os.start(): st_mode, st_ino, st_dev, ... (tham khảo: https://docs.python.org/2/library/os.html#os.stat) 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 Lỗi Thường Gặp 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à function với keyword" Ngoài ra ra còn có một số lưu ý nhỏ khác như: Từ các quy ước chung trên, PEP-8 đưa ra các đề xuất liên quan đến đặt tên cụ thể cho các trường hợp. 1. Đặt tên cho các module/packageTrong python, mỗi file được coi là một module, mỗi folder là một package. Quy tắc đặt tên của module và package là viết thường tất cả các ký tự, nếu có nhiều từ trong tên, dùng ký tự
Một số module được kế thừa từ C/C++, có thể đặt tên với ký tự _ ở phía trước. Lưu ý: Khi đặt tên module, package hãy cố gắng đừng đặt trùng tên với các module/package đã có sẵn của hệ thống. Như ở ví dụ trên, tôi đã đặt package là random_package để phân biệt được với module random đã có sẵn. Nếu dev đặt tên module/package là random, khi thực hiện 0 trình thông dịch của Python sẽ khó phân biệt cần import module random có của python hay import module random do dev viết ra (thường thì sẽ import được theo ngữ cảnh/vị trí sắp xếp structure) và đôi khi kết quả của phần mềm không được như ý muốn.2. Đặt tên cho các biến dữ liệu (variable/name), function:Tên của các functions, variables được đặt tên ở định dạng chữ viết thường, nếu có nhiều từ, sẽ nối với nhau bởi ký tự underscore: Ví dụ: 1 2Biến dữ liệu được đặt là constants value (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ụ: 3 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 dùng để làm gì sẽ được khai báo là dấu ví dụ: 6 7 83. Đặt tên cho class và attribute/function trong class:Các class trong Python được đặt tên theo định dạng CapitalizedWord (hoặc CamelCase). Ví dụ:
Một số class đặ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 class thuộc phân lớp Exception: ValueError, NameError,... Quy ước đặt tên với attribute/function trong class:
Quy ước khai báo tham số truyền vào function trong class:
Ví dụ:
Tổng kếtNgoài việc mang ý nghĩa về "meaningful names", việc đặt tên trong Python còn mang ý nghĩa về "ngữ pháp" (syntax) của chương trình thông qua việc sử dụng các ký tự Hy vọng, thông qua bài viết ngắn này, các bạn sẽ các 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 (đón chờ bài viết tiếp theo của tôi về chủ đề OOP trong Python nhé). Cảm ơn các bạn đã đọc bài viết. Tên chuẩn là gì trong Python?Tên chuẩn:
Là những tên được định nghĩa (tên module) thuộc thưu viện chuẩn của Python. Ví dụ: math (module các hàm toán học thông dụng như sin, cos, tan, sqr, sqrt, abs,...).
Tên biến dùng trong Python là gì?Tên của biến phải được bắt đầu bằng một chữ hoặc một ký tự underscore (dấu gạch dưới: _). Tên của biến không thể bắt đầu bằng một con số. Ngoài ký tự bắt đầu ra thì trong tên biến có thể sử dụng số, chữ và dấu gạch dưới như bình thường.
Flag là gì trong Python?flags: là các kiểu so khớp mà bạn muốn thực hiện. Nếu để trống thì flags sẽ bằng 0. Trong đó: pattern: là chuỗi regular expression.
Pep 8 Python là gì?PEP 8, đôi khi được đánh vần là PEP8 hoặc PEP-8, là tài liệu cung cấp các hướng dẫn và phương pháp hay nhất về cách viết mã Python. Nó được viết vào năm 2001 bởi Guido van Rossum, Barry Warsaw và Nick Coghlan. Trọng tâm chính của PEP 8 là cải thiện khả năng đọc và tính nhất quán của mã Python.
|