type和object的关系

在python里面,一切皆为对象type是object的类型,同时,object又是type的超类。

  注:被继承的类被称为超类-superclass、基类-base class 或者父类  parent class

super不是一个对象的引用,不能讲super赋予一个对象的变量,它只是一个指示编译器调用超类方法的关键字

this是指向所属对象的

object和type是同时出现的,类可以通过 type 来定义。

超类

# 超类 super(), 优雅的初始化类的属性 
#当对象B继承了对象A时,对象B就拥有了对象A的所有方法和属性.但是当我们需要给B()定义 一个初始属性 ,就不能像方法A()一样用__init__(self),因为直接用 __init__(self)就相当 于重写了父类的 初始化属性
class A():
    def __init__(self):
        self.first_name = 'king'
    def second_name(self):
        print('hao')

class B(A):
    def __init__(self):                 
        super(B,self).__init__( )
        self.english_name = 'horsun'
    def full_name(self):
        print('king hao')

  

object 和type都属于type类(class ‘type’)

type类有type元类自身创建,objec类是由元类type创建

object的父类为空,没有继承任何类

type的父类为object类(class ‘object’)

元类:负责产生该对象的类称之为元类,即元类可以简称为类的类

 

面向对象的体系中,存在两种关系:

  • 父子关系:这种关系存在于某个类(subclass)是另一个类(superclass)的特别版本之中。通常描述为“子类是一种父类”。比如:蛇是一种爬行动物(Snake is a kind of reptile)。其中,蛇(snake)是子类,爬行动物(reptile)是父类。蛇拥有爬行动物的特征,同时,又拥有标志自己是一条蛇的特征。

  • 类型实例关系:这种关系存在于两个对象之中,其中一个对象(实例)是另一个对象(类型)的具体实现。我有一条宠物蛇叫Squasher,那么Squasher就是蛇的一个实例。英文描述为:"Squasher is an instance of snake"

 

 

两个规则:

如果X是A的实例,同时A又是B的子类,那么,X也是B的实例如果B是M的实例,同时A是B的子类,那么,A也是M的实例

比如你自定义了一个类myclass,实例化就是在myclass后增加()操作符完成的。也就是instance_of_myclass=myclass()

原文地址:https://www.cnblogs.com/workherd/p/14321202.html