【python】继承关系和isinstance

来源:廖雪峰

继承关系是:

object -> Animal -> Dog -> Husky

那么,isinstance()就可以告诉我们,一个对象是否是某种类型。先创建3种类型的对象:

>>> a = Animal()
>>> d = Dog()
>>> h = Husky()

然后,判断:

>>> isinstance(h, Husky)
True
>>> isinstance(h, Dog)
True
>>> isinstance(d, Husky)
False


子类可以看做父类对象,但反过来不可以。

时间: 2024-10-13 12:06:23

【python】继承关系和isinstance的相关文章

python继承关系及DVD案例

1.模块.getrefcount--查看引用个数,如果没有引用,则抛异常: 2.继承:简化代码.生成子类时,先初始化父类 继承属性--①self.属性=当前属性 ②父类.属性=当前属性 ③父类._init_()方法 ④super(子类,self)._init_()方法 3.构造方法(必须有返回值)优先于初始化方法 类名.mso用于调用父类的位置 def _new_(cls,*,**): print() return object._new_(cls) 4.类方法:@classmethod需要参数

Python学习 Day 8 继承 多态 Type isinstance dir __slots__

继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Superclass). >>> class Animal(object):#名为Animal的class defrun(self): print'Animal is running...' >>> class Dog(Animal):#从Animal类继承 pass

Python rest-framework 中类的继承关系(as_view)

一. 背景 最近几天一直在学习restful framework的源代码,用户请求的流程,在路由系统这块遇到一个疑问,关于类的继承关系,当请求进来到路由这块,执行as_view()方法的时候,为什么会运行父类View的as_view()方法再执行到APIView的dispatch方法呢?这里记录一下一遍后面方便自己查阅 二. 代码示例 1. 路由 from django.conf.urls import url from api import views as api_view urlpatte

Python中类的内置方法与继承关系实例

1.类的内置方法 Python内部类:所谓内部类,就是在类的内部定义的类,主要目的是为了更好的抽象现实世界.例子:汽车是一个类,汽车的底盘轮胎也可以抽象为类,将其定义到汽车内中,而形成内部类,更好的描述汽车类,因为底盘轮胎是汽车的一部分. 内部类实例化方法: 方法1:直接使用外部类调用内部类方法2:先对外部类进行实例化,然后再实例化内部类 out_name = outclass_name() in_name = out_name.inclass_name() in_name.method() #

python 异常继承关系及自定义异常的实现

主要介绍 python 中异常的继承关系,及如何自定义异常 1. 异常的继承关系 BaseException # 所有异常的基类 +-- SystemExit # 解释器请求退出 +-- KeyboardInterrupt 用户中断执行(通常是输入^C) +-- GeneratorExit # 生成器(generator)发生异常来通知退出 +-- Exception # 常规异常的基类 +-- StopIteration # 迭代器没有更多的值 +-- StandardError # 标准错误

python 继承和多态

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). 比如,我们已经编写了一个名为Animal的class,有一个run()方法可以直接打印: class Animal(object): def run(self): print 'Animal is running...' 当我们需要编写Dog和Cat类时,就可以直接从Animal

python继承,判断类型,多态

1.python中继承 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender 定义Student类时,只需要把额外的属性加上,例如score: class Student(Person): def __init__(self, name, gender,

python继承

Python继承 继承实例: 父类和子类的关系: 继承树: 没有父类就继承object类,不要忘记调用super().__init__来初始化父类 代码: class Person(object): def __init__(self, name, gender): self.name = name; self.gender = gender; class Student(Person): def __init__(self, name, gender ,score): super(Studen

由socketserver源码引出的类的继承关系

当我们拿到一份python源代码,我们要怎么去看呢? 下面我们以socketserver为例,看下面的一段代码: 1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 # Author: ZCX 4 5 import socketserver #导入socketserver模块 6 7 8 class MyServer(socketserver.BaseRequestHandler): #定义一个类 9 def handle(self): #定义