isinstance 和 issubclass

isinstance(obj,cls):检查obj是不是cls的对象(传两个参数,一个是对象,一个是类)

issubclass(sub,super):检查sub是不是super的子类(传两个参数,一个是子类,一个是父类)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print(isinstance(1,int))
#True
#判断 1 是不是int类型
class Foo:
    pass
class Son(Foo):
    pass
s = Son()
print(isinstance(s,Son))  #判断s是不是Son的对象
print(type(s) is Son)
print(isinstance(s,Foo))  #判断s是不是Foo的对象  不精准
print(type(s) is Foo)  #type比较精准

print(issubclass(Son,Foo)) #判断Son是不是Foo的子类
print(issubclass(Son,object))
print(issubclass(Foo,object))
print(issubclass(int,object))

原文地址:https://www.cnblogs.com/zhaojingyu/p/9057466.html

时间: 2024-08-02 09:06:23

isinstance 和 issubclass的相关文章

isinstance 与 issubclass

isinstance与issubclass都是用于判断的,有什么区别呢? 1. isinstance字面意思:实列, 用户判断对象所属类型,包含类的继承关系. 2. issubclass字面理解:是子类. 用来判断类与类之间的关系, 含继承关系 列: class A: pass class B(A): pass b= B() print( isinstance(b,B))   结果为True print( isinstance(b,A))   结果为True print( issubclass(

27 isinstance与issubclass、反射、内置方法

isinstance与issubclass issubclass:判断子类是否属于父类,是则返回True,否则返回False isinstance:判断对象是否属于类,是则返回True,否则返回False class Bar: pass class Foo(Bar): pass print(issubclass(Foo,Bar))#输出一个True obj=Foo() print(isinstance(obj,Foo))#输出一个True 反射 反射:通过字符串来反射/映射到对象/类的属性上 c

绑定与非绑定方法及反射,isinstance和issubclass内置函数

目录 绑定方法与非绑定方法 1.绑定方法 2.非绑定方法(staticmethod) isinstance和issubclass 内置函数 1.isinstance 2.issubclass 反射 反射定义 4个可以实现反省的函数(内置函数) 反射使用场景 绑定方法与非绑定方法 1.绑定方法 ? 绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入 ? ? 绑定给对象的方法: ? 类中定义的函数默认就是绑定给对象的 ? 绑定给类的方法: ? 为类中定义的函数加上一个装饰器cla

内置函数isinstance和issubclass介绍和异常处理讲解

一.isinstance(obj,cls)检查obj是否是cls的对象 当程序依赖用户输入,即对用户输入的内容进行分门别类的操作时就用isinstance>>> n1=10>>> n2=9>>> print isinstance(n1,int)True>>> print isinstance(n1,str)False>>> 判断n1是否是int类创建,是返回True,否返回Falseisinstance第2个参数可以

python补漏----isinstance 和 issubclass

一.isinstance Python 中的isinstance函数 isinstance是Python中的一个内建函数 语法: isinstance(object, classinfo) 如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True.如果object不是一个给定类型的的对象, 则返回结果总是False. 1 class Person(object): 2 pass 3 4 obj = Person() 5 6 a = i

python ==》 面向对象的反射,(isinstance and issubclass)

1.staticmethod:(静态方法) 静态方法:让类里的方法直接被类调用,就像正常的函数一样. class Staticmethod_Demo(): role = 'Aray' @staticmethod def func(): print('当普通方法用') Staticmethod_Demo.func() 输出结果: 当普通方法用 2.classmethod:(类方法) 类方法:默认参数为:cls  ,可以直接用类名调用,可以与类属性交互. class Classmethod_Demo

内置函数isinstance和issubclass

1. isinstance(obj,class) 判断对象obj是不是由class生成的对象. class Foo: pass obj=Foo() print(isinstance(obj,Foo)) obj是Foo的生成的对象,返回True.如果不是,则返回False. d={'x':1} #d=dict({'x':1} #) print(type(d) is dict) print(isinstance(d,dict))# 判断对象d是不是类dict生成的 issubclass() 2.is

python isinstance和issubclass区别

一.issubclass 判断两个类是否是同个类,或者有继承关系.只能判断类不能判断实例 class A: pass class B(A): pass print(issubclass(B,A)) print(issubclass(A,A)) 二.isinstance 用于判断一个实例是否为一个类或者子类的实例. class A: pass class B(A): pass a = A() b = B() print(isinstance(a,A)) print(isinstance(b,A))

property装饰器函数 @classmethod @staticmethod isinstance和issubclass

property函数   让方法伪装成属性   还有一系列的装饰器函数 1 class Goods: 2 __discount = 0.8 3 def __init__(self,price): 4 self.__price = price 5 self.name = 'apple' 6 7 @property #伪装成属性 8 def price(self): 9 return self.__price * Goods.__discount 10 11 @price.setter #修改折扣