ITPub博客

首页 > 应用开发 > Python > 如何在 Python 中使用一个“私有”变量?

如何在 Python 中使用一个“私有”变量?

原创 Python 作者:mingtian66 时间:2024-10-29 13:19:36 0 删除 编辑

在 Python 中,私有变量通常通过在变量名前添加双下划线 (__) 来实现。尽管 Python 中没有真正的私有访问修饰符(如 Java 的 private),但使用这种命名约定会触发一种叫做“名称重整”(name mangling)的机制,使变量在类外部难以访问。
使用双下划线模拟私有变量

在定义类的私有变量时,可以使用双下划线开头来表示:

python

class MyClass:
    def __init__(self):
        self.__private_var = 42  # 私有变量

    def get_private_var(self):
        return self.__private_var  # 通过公共方法访问私有变量

obj = MyClass()
print(obj.get_private_var())  # 输出: 42

通过 __private_var 命名,Python 将变量的名称重整为 _ClassName__variableName,以避免在子类或其他作用域中意外访问。
尝试直接访问“私有”变量

直接访问 __private_var 会导致 AttributeError:

python

print(obj.__private_var)  # 会引发 AttributeError

如何访问重整后的变量

即使变量是“私有”的,也可以通过 Python 的名称重整机制访问它:

python

print(obj._MyClass__private_var)  # 输出: 42

    注意:尽管可以通过名称重整访问“私有”变量,但这是不推荐的做法。直接访问私有属性会破坏封装性,通常应避免这种方式。

Python 私有变量的最佳实践

在 Python 社区中,约定俗成的私有属性或方法一般使用单下划线 _ 开头(如 _private_var)。这只是一种约定,而非真正的访问控制,表示该属性是类内部使用,不建议在类外部直接使用。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040412/viewspace-3043148/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2024-08-07

  • 博文量
    589
  • 访问量
    603013