辨别的类和子类

时间:2013-04-12 20:22:36

标签: python list class subclass

我如何检查某些东西是子类还是类。比如说:

class Cat(object):
    def __init__(self,run,fast):
        """run is a list of speeds or something. But it can be from dogs or cats. Fast is a single number"""
        self.run=run
        self.fast=fast

class Dog(Class):
    def __init_(self,run, fast):
        Cat.__init__(self,run,fast)
        self.jumper=[]

    def update(self)
        for number in self.fast:
            if number is CATTYPE:
                self.jumper.append(number)
            if number is DOGTYPE:
                self.jumper.append(number)

基本上我正在尝试,在有全部大写的情况下,找到一种方法来使语句快速找到它是否是猫类型,然后附加到跳线。我知道这是一个愚蠢的例子,但我想知道当一个人是另一个人的子类时如何处理这个问题。

1 个答案:

答案 0 :(得分:2)

>>> issubclass
<built-in function issubclass>
>>> class Foo: pass

>>> class Bar(Foo): pass

>>> issubclass(Foo, Bar)
False
>>> issubclass(Bar, Foo)
True
>>> isinstance(Bar(), Foo)
True

使用issubclass(B, C)检查B是否是C的子类。

使用isinstance(c, C)检查c是C的实例还是C的子类的实例。

解决您的问题:

if isinstance(animal_instance, Dog): 
    #instance of Dog

if isinstance(animal_instance, Cat):
    #instance of Cat
但是,从你的模糊来源来看,似乎你正试图建立某种跟踪“跳跃记录”并选择“快速跳投”的赛狗计划。它让我们想知道你想要检查实例类的内容。