我如何检查某些东西是子类还是类。比如说:
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)
基本上我正在尝试,在有全部大写的情况下,找到一种方法来使语句快速找到它是否是猫类型,然后附加到跳线。我知道这是一个愚蠢的例子,但我想知道当一个人是另一个人的子类时如何处理这个问题。
答案 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
但是,从你的模糊来源来看,似乎你正试图建立某种跟踪“跳跃记录”并选择“快速跳投”的赛狗计划。它让我们想知道你想要检查实例类的内容。