Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Ý nghĩa prefix underscore đơn (_) với biến Python

Single Underscore (_name)

Tên trong class có leading underscore chỉ ra ý định internal use (semi-private) cho programmer khác.

Theo PEP 8:

_single_leading_underscore: weak "internal use" indicator. Ví dụ: from M import * không import object tên bắt đầu bằng underscore.

Ví dụ so sánh

class MyClass:
    def __init__(self):
        self.__full_private = "World"   # name mangling
        self._semi_private = "Hello"    # convention only

obj = MyClass()
print(obj._semi_private)      # Hello - truy cập bình thường
print(obj.__full_private)     # AttributeError
# Truy cập thực sự: obj._MyClass__full_private

Kết quả

Hello
AttributeError: 'MyClass' object has no attribute '__full_private'

Tóm tắt: _ = quy ước (convention), __ = name mangling (enforcement nhẹ).