isinstance type issubclass

class Animal:
    def eat(self):
        print("刚睡醒吃点儿东西")

class Cat(Animal):
    def play(self):
        print("猫喜欢玩儿")

c = Cat()

print(isinstance(c, Cat)) # c是一只猫
print(isinstance(c, Animal)) # 向上判断

a = Animal()
print(isinstance(a, Cat)) # 不能向下判断

print(type(a)) # 返回 a的数据类型
print(type([]))
print(type(c)) # 精准的告诉你这个对象的数据类型

# 判断.xx类是否是xxxx类的子类
print(issubclass(Cat, Animal))
print(issubclass(Animal, Cat))

# 应用
def cul(a, b): # 此函数用来计算数字a和数字b的相加的结果
    # 判断传递进来的对象必须是数字. int float
    if (type(a) == int or type(a) == float) and (type(b) == int or type(b) == float):
        return a + b
    else:
        print("对不起. 您提供的数据无法进行计算")

print(cul(a, c))

  

原文地址:https://www.cnblogs.com/work14/p/10187497.html

时间: 2024-08-02 13:17:49

isinstance type issubclass的相关文章

14 isinstance type issubclass及反射

一 isinstance() .type(). issubclass() issubclass(xxx,ooo)内置函数可以帮我们判断类xxx类是不是ooo类的子类. class AAA: pass class BBB(AAA): pass class CCC(BBB): pass print(issubclass(BBB,AAA)) #True print(issubclass(AAA,BBB))#False print(issubclass(CCC,AAA)) #True 可以隔代检测 is

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

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

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() p

内置函数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

isinstance与issubclass

isinstance 类型判断,对象是否是由类实例化 print(type([]) is list) print(isinstance([],list)) #True #True issubclass 类是否为子类 class Foo: pass class Bar(Foo): pass print(issubclass(Bar,Foo)) #True 原文地址:https://www.cnblogs.com/msj513/p/9873011.html

内置函数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个参数可以