python类方法名加前缀下划线
- 其他
- 2025-09-06 10:06:02

单下划线前缀
在类的方法名或属性名前加单下划线 _ 是一种约定俗成的规范,用来表示这是一个 “受保护的” 成员。 注意:这仅仅是一种约定,并没有真正的访问限制,外部代码仍然可以访问这些成员。
class MyClass: def __init__(self): # 受保护的属性 self._protected_attribute = 42 def _protected_method(self): # 受保护的方法 return self._protected_attribute # 创建类的实例 obj = MyClass() # 可以访问受保护的属性和方法 print(obj._protected_attribute) print(obj._protected_method())_protected_attribute 和 _protected_method 前面加了单下划线,按照约定,它们被视为受保护的成员 虽然有这样的约定,但在类的外部仍然可以直接访问这些成员,如代码中通过实例 obj 直接调用了受保护的属性和方法。 这种约定通常用于提醒其他开发者,这些成员是类内部使用的,不建议在外部直接访问,因为它们可能会在未来的版本中发生变化。
双下划线前缀在类的方法名或属性名前加双下划线 __表示这是一个 “私有” 成员,Python 会对这类成员进行名称修饰(Name Mangling),以避免子类意外覆盖这些成员
class ParentClass: def __init__(self): # 私有属性 self.__private_attribute = 10 def __private_method(self): # 私有方法 return self.__private_attribute class ChildClass(ParentClass): def __init__(self): super().__init__() # 创建子类的实例 child_obj = ChildClass() # 直接访问私有属性和方法会报错 # print(child_obj.__private_attribute) # 会引发 AttributeError # print(child_obj.__private_method()) # 会引发 AttributeError # 实际上私有成员被重命名了 print(child_obj._ParentClass__private_attribute) print(child_obj._ParentClass__private_method())__private_attribute 和 __private_method 前面加了双下划线,它们是私有成员 在类的外部直接访问这些私有成员会引发 AttributeError 异常 Python 对私有成员进行了名称修饰,实际的名称变成了 _类名__成员名的形式,如_ParentClass__private_attribute和 _ParentClass__private_method,可以通过这种变形后的名称来访问私有成员,但不建议这样做。
双下划线前缀通常用于确保类的内部实现细节不被外部代码或子类意外修改,增强类的封装性
总结单下划线前缀是一种软性的访问限制约定,而双下划线前缀则提供了更强的封装性,但仍然不是绝对的访问限制
python类方法名加前缀下划线由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python类方法名加前缀下划线”