Asked Aug 30th, 2017 2:40 AM 79 0 1
  • 79 0 1
0

Hỏi về khai báo định danh (identifier) trong Python kiểu _a __a hay __a__

Share
  • 79 0 1

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!

1 ANSWERS


Answered Aug 30th, 2017 3:26 AM
Accepted
+5

Đầu tiên:

Nó có phải gần giống Access Modifier trong Java/C# không ? Không

Về các dấu gạch dưới:

  • _something: được sử dụng với mục đích chính là weak "internal use". Nghĩa là khi bạn viết một class C có method _m() thì khi gọi from A import * sẽ không import module _m() này vào. Mục đích phụ: để đại diện cho những thứ vứt đi, ví dụ bạn chỉ muốn lấy 2 phần tử đầu và cuối của 1 mảng: head, *_, tail = array, thì khi này _ sẽ là phần ở giữa, chả dùng để làm gì cả, nên chả cần cái tên nào cả. Ngoài ra còn mục đích nữa là để lưu trữ giá trị cuối cùng trong Python, cái này ít dùng, bạn có thể tự tìm hiểu thêm.
  • __something: nó đơn thuần là một convention, đại diện cho một attribute của class. Trong class C có __something thì nó sẽ được thay thế bởi _C__something khi chạy bởi trình thông dịch.
  • __ something__: python built-in method
Share