给定一个任意的 python 对象,确定它是否是一个数字的最佳方法是什么?这里 is
被定义为 acts like a number in certain circumstances
。
例如,假设您正在编写一个向量类。如果给定另一个向量,你想找到点积。如果给定一个标量,你想缩放整个向量。
检查某些对象是否是 int
、 float
、 long
、 bool
是令人讨厌的,并且没有覆盖可能像数字一样作用的用户定义对象。但是,例如,检查 __mul__
还不够好,因为我刚才描述的向量类将定义 __mul__
,但它不是我想要的那种数字。