Python类之super()与私有属性

Posted enoch-m

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python类之super()与私有属性相关的知识,希望对你有一定的参考价值。

super()有参数写法:

# 1.定义父类
class A(object):
    def __init__(self):
        self.num = 1
    def info_print(self):
        print(self.num)

class C(A):
    def __init__(self):
        self.num = 2
    def info_print(self):
        print(self.num)
        super(C, self).__init__()
        super(C, self).info_print()
# 2. 定义子类,继承父类

class B(C):
    def __init__(self):
        self.num = 3

    def info_print(self):
        self.__init__()
        print(self.num)

    def print_A(self):
        A.__init__(self)
        A.info_print(self)

    def print_C(self):
        C.__init__(self)
        C.info_print(self)

    def print_AC(self):
        super(B, self).__init__()
        super(B, self).info_print()

b = B()
b.print_AC()

super()用于调用父类的方法

无参写法:

super().__init__()
super().info_print()

使用super()方法可以自动查找父类,查找顺序遵循__mro__类属性的顺序

 

 

私有属性与方法

设置私有极限的方法:在属性名和方法名前面加上两个下划线__

设置之后设置的实例属性或实例方法不继承给子类

 

获取和修改私有属性:

在类中添加函数:

def get_money(self):
    return self.__money
def set_money(self, money):
    self.__money = money

 

以上是关于Python类之super()与私有属性的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

python之路之前没搞明白4面向对象(封装)

Python_67面向对象类之特殊成员setitem/getitem/delitem

片段中的 super.onCreateView

关于父类私有属性在子类构造函数中super调用的解释

Python面向对象特性