代码改变世界

python私有变量和方法

2020-09-13 02:26  清风软件测试开发  阅读(535)  评论(0编辑  收藏  举报

python私有变量和方法

1,私有变量和私有方法无法被继承

2,私有变量和私有方法可以放在普通方法(实例方法)里面被子类继承

class A:  
    def __init__(self, name):
        self.name = name
        self.__age = 10
def __eat(self): print('吃饭')
def sleeping(self): print(self.name) self.__eat() print('睡觉') print(str(self.__age) + " 岁了") class B(A): pass obj = B("小明") obj.sleeping() 输出: 小明 吃饭 睡觉 10 岁了

3,私有变量和私有方法可以放在普通方法(实例方法)里面被子类继承,但是子类无法重写覆盖

     也就是说:在继承中,父类如果不想让子类覆盖自己的方法,可以将方法定义为私有方法

class A:
    def fa(self): #在定义时就变形为_A__fa
        print('from A')
    def test(self):
        self.fa() #只会与自己所在的类为准,即调用_A__fa

class B(A):
    def fa(self):
        print('from B')

b=B()
b.test()

输出:::::::
from B
class A:
    def __fa(self): #在定义时就变形为_A__fa
        print('from A')
    def test(self):
        self.__fa() #只会与自己所在的类为准,即调用_A__fa

class B(A):
    def __fa(self):
        print('from B')

b=B()
b.test()

输出:::::::::
from A