这里`type(obj) == Ball`也会报错。
原因很简单,两个名字相同的类并不相等。
那问题来了,为什么会产生两个相同名字的类。我代码只定义了一次啊?
原因是jupyter里面用了autoreload的magic,reload之后就变成新的类了……
这个故事告诉我们,没事不要随便isinstance,Python就用duck type就好。能跑就跑,不能跑就raise
参考:https://stackoverflow.com/questions/10582774/python-why-can-isinstance-return-false-when-it-should-return-true