首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在子类中访问超类中的私有成员变量?

在子类中访问超类中的私有成员变量是不被推荐的,因为私有成员变量的目的是限制对它们的访问。但是,如果确实需要在子类中访问超类中的私有成员变量,可以使用以下方法:

  1. 在超类中创建一个公共方法,该方法返回私有成员变量的值。
代码语言:python
代码运行次数:0
复制
class SuperClass:
    def __init__(self):
        self.__private_var = "Private Variable"

    def get_private_var(self):
        return self.__private_var

class SubClass(SuperClass):
    def __init__(self):
        super().__init__()

    def access_private_var(self):
        return self.get_private_var()

sub_class = SubClass()
print(sub_class.access_private_var())
  1. 使用Python的__getattr__方法。
代码语言:python
代码运行次数:0
复制
class SuperClass:
    def __init__(self):
        self.__private_var = "Private Variable"

class SubClass(SuperClass):
    def __init__(self):
        super().__init__()

    def __getattr__(self, name):
        if name == "private_var":
            return self._SuperClass__private_var
        raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{name}'")

sub_class = SubClass()
print(sub_class.private_var)

请注意,这些方法可能会破坏封装原则,因此应谨慎使用。在实际开发中,最好遵循面向对象编程的最佳实践,并尽量避免访问私有成员变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券