Smart猫小萌
如果你需要这样做,就做isinstance(<var>, int)除非您在Python2.x中,在这种情况下,您需要isinstance(<var>, (int, long))不使用type..在Python中,它几乎不是正确的答案,因为它阻碍了多态性的所有灵活性。例如,如果您的子类int,您的新类应该注册为int,它type不会:class Spam(int): passx = Spam(0)type(x) == int # Falseisinstance(x, int) # True这符合Python的强多态性:您应该允许任何行为类似于int而不是强制要求它是一个。但然而,传统的Python思维是请求宽恕比请求许可容易..换句话说,不要检查x是一个整数;假设是,如果不是,则捕获异常结果:try:
x += 1except TypeError:
...这种心态正在慢慢地被使用抽象基类,这使您能够准确地注册对象应该具有哪些属性(添加?倍增?加倍?)让它继承一个特殊构造的类。这将是最好的解决方案,因为它将允许一点儿没错那些具有必要和足够属性的对象,但是您必须阅读关于如何使用它的文档。