01/10/2018, 11:15
Hỏi về khai báo định danh (identifier) trong Python kiểu _a __a hay __a__
Xin chào mọi người! Em mới học Python. Mọi người cho em hỏi là khi định danh trong Python mà mình sử dụng gạch dưới kiểu _a __a
hay __a__
thì nó có ý nghĩa gì? Có gì khác nhau? Cái này là để người đọc code hiểu hay để chương trình nhận biết ạ? Nó có phải gần giống Access Modifier trong Java không ạ? Em xin cảm ơn!
Bài liên quan
Đầu tiên mình sẽ nói về một cái dấu
_
. Đây là một biến đặc biệt trong Python có vai trò giữ giá trị vừa mới được tính toán, được ghi rất rõ trên docs của Python khi bạn đọc tới mấy cái phần liên quan đến số. Ví dụLưu ý: Khi chưa có cái giá trị gì, thì biến
_
chưa được khởi tạo đâu.Thế nên, đôi lúc người ta dùng biến với tên
_
để lấp vô chỗ trống để không có lỗi đồng thời coi như giá trị rác. Ví dụCòn trường hợp biến, class, method mà bắt đầu bằng
_
sẽ được coi làprivate
. Ví dụThì lúc bạn import như sau
Lưu ý: Khi bạn import theo kiểu này thì không phải private nhé
Còn với trường hợp nó có dấu
_
ở cuối cùng, thường là tránh các keyword có sẵn nhưNếu tên thuộc tính của class bắt đầu bằng 2 dấu
__
thì nó là private ngay trong đó luônTrường hợp nữa là nó được bắt đầu bằng
__
2 dấu, và kết thúc cũng__
là special attribute. Một vài ví dụMột trường hợp khác đó là dùng
_
để làm cho số dễ đọc hơn.Cũng có thể dùng cách này để convert bin, hex
Còn với bình thường, tên biến, tên hàm được đặt theo kiểu
abc_xyz_mnp
theo chuẩn PEP8Mình biết tới vậy thôi
Cảm ơn anh! Rất chi tiết và có cả ví dụ dễ hiểu.