在面向对象体系里面,存在两种关系:
-父子关系,即继承关系,表现为子类继承于父类,如『蛇』类继承自『爬行动物』类,大家说『蛇是一种爬行动物』,英文说『snakeisakindofreptile』。在python里要查看一个类型的父类,使用它的__bases__属性可以查看。
-类型实例关系,表现为某个类型的实例化,例如『萌萌是一条蛇』,英文说『萌萌isaninstanceofsnake』。在python里要查看一个实例的类型,使用它的__class__属性可以查看,或者使用type()函数查看。
str对象从一个obj构建的时候也是调用其__str__(),如果这时候报错了,比如
就会返回type(obj)的值。
首先一个类中定义__str__()肯定至少会有self这一个参数的,所以不从实例调用的时候就会出错。