美文网首页
新式类与旧式类

新式类与旧式类

作者: comboo | 来源:发表于2017-04-12 11:11 被阅读27次

作为补充知识.另外,以后版本定在python3,很多旧的写法了解就好了.

  1. 经典类

没有继承的类,
注意:如果经典类被作为父类,子类调用父类的构造函数时会出错。【TypeError: must be type, not classobj】

#基类(经典类)
class Person:
    def __init__(self):
        print "Hi, I am a person. "

#子类
class Student(Person):
    def __init__(self):
        super(self.__class__, self).__init__()

if __name__ == "__main__":
    student = Student()
    #出错啦!TypeError: must be type, not classobj

经典类已经被python3移除.在python2中,通过class直接定义的是经典类,通过继承object的是新式类

新式类

每个类都继承于一个基类,可以是自定义类或者其它类,如果什么都不想继承,那就继承于object
如果想用super调用父类的构造函数,请使用新式类!

#python2
#基类(新式类)
class Person(object):
    def __init__(self):
        print "Hi, I am a person."
#子类
class Student(Person):
    def __init__(self):
        super(self.__class__, self).__init__()

if __name__ == "__main__":
    student = Student()
#coding:utf-8
#父类
class A:
    def spam(self):
        print('A.spam')

#子类
class B(A):
    def spam(self):
        print('B.spam')
        super().spam()  # Call parent spam()

python3里面,直接用class 定义的是新式类。。。

相关文章

  • 新式类与旧式类

    作为补充知识.另外,以后版本定在python3,很多旧的写法了解就好了. 经典类 没有继承的类,注意:如果经典类被...

  • Python 类

    新式类和旧式类 在python2.x的版本中,有“新式类”和“旧式类(也叫做经典类)”之分。新式类是python2...

  • 新式类和旧式类区别

    Python中类分两种:旧式类和新式类:➤新式类都从object继承,经典类不需要。 ➤新式类的MRO(metho...

  • Python3.x:面向对象的三大特性之继承第二部分

    由于多继承是新式类和旧式类区别比较大的地方,所以这里单独写一篇文章来详细介绍 首先来了解一下新式类与旧式类写法上的...

  • Python的新式类与旧式类

    python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧类。为什么要在2.2中引进new st...

  • Python多继承的执行顺序

    经典类和新式类的写法: class A: #经典类(旧式类)写法..................clas...

  • 2018-06-13pychame使用技巧和类的一些知识

    一、加了object代表是新式类 新式类:广度优先,先找BC,再找D旧式类:深度优先,先BA,再CA Python...

  • python2和python3的差别

    1、新式类和旧式类的差异,python3统一采用新式类,需要显式继承object类 2、python3中print...

  • 新式类和经典类(旧式类)区别

    1、新式类都从object继承,经典类不需要。 2、新式类的MRO(method resolution order...

  • 旧式类 vs. 新式类(三)

    转载须注明出处:简书@Orca_J35 4. 重要差异 引入新式类的主要动机是为了提供具有完整元模型(meta-m...

网友评论

      本文标题:新式类与旧式类

      本文链接:https://www.haomeiwen.com/subject/hhzpattx.html