python 私有方法,私有属性 在继承中的表现

本文通过实例探讨了Python中私有方法和私有属性在类继承时的表现。具体分析了两种情况:一是子类如何通过父类提供的公有方法间接访问私有成员;二是子类直接尝试访问继承来的私有成员时的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#每天一点点#

python 私有方法,私有属性 在继承中的表现

情况1:如果调用的是继承父类中的公有方法,那么,可以在这个公有方法
中访问父类的私有属性和私有方法;

情况2:如果在子类中实现了一个公有方法,那么,这个方法是不能调用
继承的父类中的私有方法和私有属性的;

#私有方法,私有属性在继承中的表现

class A:
    def __init__(self): 
        self.num1 = 100
        self.__num2 = 200 #私有方法
        
    def test1(self):
        print('------test1------')
        
    def __test2(self): #私有属性
        print('------test2------')
        
    def test3(self):
        self.__test2()
        print(self.__num2)
        
class B(A):
    def test4(self):
        self.__test2()
        print(self.__num2)
        
b = B()
b.test3()   #情况1
b.test4()   #情况2

b.test3() 输出结果 ???????
------test2------
200
b.test3() 输出结果 ???????

-----------------------------分割线---------------------------------

b.test4() 输出结果 ???????

‘B’ object has no attribute ‘_B__test2’

b.test4() 输出结果 ???????

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值