程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

为什么在实例化类时不调用父构造函数?[重复]

发布于2019-11-18 20:18     阅读(1566)     评论(0)     点赞(20)     收藏(3)


class A:
    def __init__(self):
        print 'A'


class B(A):
    def __init__(self):
        print 'B'


b = B()
B

在C ++中,我期望看到A B输出,但是在Python中,我只会得到B我知道我可以super(B, self).__init__()在Python中达到相同的目的,但是由于这显然不是默认值(或者它-我对语法也很陌生),我担心用于实例化对象的范例完全不同。

那么,Python中的对象是什么,它们与类的关系是什么,以及初始化Python中所有父类中的所有数据的标准方法是什么?


解决方案


那么Python中的对象是什么

好吧,Python中的对象就像成员和方法的字典一样。没有比这更复杂的了。您无需进行可见性处理(如果您想隐藏成员,请不要在公共文档中谈论它,而仅添加评论)。

他们与阶级有什么关系

类定义了将实例化dict / object 的方法/成员骨架这样就得到了构造函数__init__(),它只是创建该对象时使用的处理程序。

在Python中初始化所有父类中的所有数据的标准方法是什么?

您要么不重新定义构造函数,然后所有父类都将启动其构造函数(如默认的C ++行为),要么重新定义构造函数,然后必须显式调用父类的构造函数。

记住python的禅宗:“显式优于隐式”。它完全适用于此。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/160021/31a32b647d7088c1d1c7/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

20 0
收藏该文
已收藏

评论内容:(最多支持255个字符)