Python类访问权限详解

在Python中,没有像Java或C++那样的public、private等关键字来控制类的访问权限。取而代之的是,Python采用了单下划线和双下划线来实现类似的功能。

1. 单下划线(_):

在类成员前添加单下划线,表示该成员是受保护的。按照约定,受保护的成员应该只在类内部或子类中访问。

2. 双下划线(__):

在类成员前添加双下划线,表示该成员是私有的。私有成员只能在类内部访问。

重要提示: Python中的访问权限机制并不是强制性的,即使是私有成员,也可以通过特殊的方式在类外部访问。

代码实例

class MyClass:
    def __init__(self):
        self.public_member = 'I am a public member'
        self._protected_member = 'I am a protected member'
        self.__private_member = 'I am a private member'

    def get_protected_member(self):
        return self._protected_member

    def get_private_member(self):
        return self.__private_member


my_object = MyClass()
print(my_object.public_member)  # 输出:I am a public member
print(my_object.get_protected_member())  # 输出:I am a protected member
print(my_object.get_private_member())  # 输出:I am a private member
print(my_object._MyClass__private_member)  # 输出:I am a private member

代码解读:

  • public_member 是公共成员,可以在任何地方访问。
  • _protected_member 是受保护的成员,可以通过方法 get_protected_member 在外部访问。
  • __private_member 是私有成员,可以通过方法 get_private_member 在外部访问,也可以通过 _MyClass__private_member 这种特殊的方式在外部访问。

总结:

Python的访问权限机制主要依靠程序员的自觉性,单下划线和双下划线更多的是一种提示和约定,而不是强制性的限制。

Python类访问权限详解:单下划线、双下划线与实例

原文地址: https://www.cveoy.top/t/topic/jswK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录