我们讲过了一些子类继承父类的案例,不过有的小伙伴跟小编反映分不清子类和父类,用的时候容易出错。小编看了一下,确实容易混淆,还是要明确两者的关系。为此小编整理了一些子类和父类关系对比的示例,希望小伙伴们能在运行代码的过程中,找到两者明确的区别。
先来看一段代码:
classAnimal(object): pass classCat(Animal): pass A=Animal() C=Cat()
子类与父类的关系是 “is” 的关系,如上 Cat 继承于 Animal 类,我们可以说:
“A”是 Animal 类的实例,但,“A”不是 Cat 类的实例。
“C”是 Animal 类的实例,“C”也是 Cat 类的实例。
判断对象之间的关系,我们可以通过 isinstance (变量,类型) 来进行判断:
print('"A"ISAnimal?',isinstance(A,Animal)) print('"A"ISCat?',isinstance(A,Cat)) print('"C"ISAnimal?',isinstance(C,Animal)) print('"C"ISCat?',isinstance(C,Cat))
输出结果:
"A"ISAnimal?True "A"ISCat?False "C"ISAnimal?True "C"ISCat?True
拓展:isinstance() 判断变量类型
函数 isinstance() 不止可以用在我们自定义的类,也可以判断一个变量的类型,如判断数据类型是否为 int、str、list、dict 等。
print(isinstance('100',int)) print(isinstance(100,str)) print(isinstance('100',str))
输出:
True False False True
相信看了以上的示例,小伙伴能够明确子类与父类的关系了,小编也为大家开心。这样下次在子类继承父类的时候,小伙伴们也不会弄错,分不清两者的关系。