super的解释(ClassName,self).__ init __()

时间:2013-09-17 03:02:56

标签: python oop

我是C++开发人员,我正在迁移到python,我阻止了:

def __init__(self): # definition of constructor
    super(ClassName,self).__init__() 

但我不知道二线的任何想法。你能解释C++中的第二行吗?

2 个答案:

答案 0 :(得分:1)

C ++中没有精确的等价物。请read this获得一个很好的解释: - )

在非常简单(单继承)的情况下,您提供的行只调用__init__父类的ClassName方法。

答案 1 :(得分:1)

相当于这个c ++代码:

#include <iostream>
using std::cout;

class parent {

protected:
    int n;
    char *b;
public:
    parent(int k): n(k), b(new char[k]) {
        cout << "From parent class\n";
    }
};

class child : public parent {

public:
    child(const int k) : parent(k){
        cout << "From child class\n";
        delete b;
    }
};


int main() {
    child init(5);
    return 0;
}