上一篇
在 Python私有方法 的世界里,其实并没有真正意义上的“私有”——这与其他语言(如 Java 或 C++)不同。Python 使用一种称为“名称改写(name mangling)”的机制和一套约定俗成的命名规则来模拟私有成员的行为。本文将带你从零开始,轻松掌握 Python 中如何使用下划线约定实现封装。
严格来说,Python 没有真正的私有方法或属性。但通过在方法或变量名前加一个或两个下划线(_ 或 __),我们可以告诉其他开发者:“请不要直接访问我!” 这就是 Python下划线约定 的核心思想。
Python 中有两种常见的下划线用法:
_method):表示“内部使用”,是一种约定,不会阻止外部访问,但提示“这是受保护的,请谨慎使用”。__method):触发名称改写(name mangling),Python 会自动将其重命名为 _ClassName__method,从而避免子类意外覆盖。下面是一个完整的例子,展示单下划线和双下划线的实际效果:
class BankAccount: def __init__(self, owner, balance): self.owner = owner self._balance = balance # 单下划线:约定为“内部使用” self.__pin = "1234" # 双下划线:触发名称改写 def deposit(self, amount): if amount > 0: self._balance += amount def _validate_pin(self, pin): # 内部方法,不建议外部调用 return pin == self.__pin def withdraw(self, amount, pin): if self._validate_pin(pin) and amount <= self._balance: self._balance -= amount return True return False# 使用示例account = BankAccount("Alice", 1000)# 可以访问(但不推荐)print(account._balance) # 输出: 1000# 尝试访问双下划线属性(会失败)# print(account.__pin) # AttributeError!# 但可以通过改写后的名称访问(不推荐!)print(account._BankAccount__pin) # 输出: 1234 使用 Python封装技巧 有三大好处:
掌握 Python面向对象编程 中的私有方法约定,是写出专业、健壮代码的关键一步。记住:Python 信奉“我们都是 consenting adults(我们都是有共识的成年人)”,所以它不强制限制访问,而是通过清晰的命名约定引导你写出更好的代码。
现在,你已经可以自信地在项目中使用这些技巧了!
本文由主机测评网于2025-12-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122649.html