Python-检查变量是否为整数

发布于 2021-02-02 23:20:47

如何检查变量是否为整数?

关注者
0
被浏览
143
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果你需要这样做,请执行

    isinstance(<var>, int)
    

    除非你使用的是Python 2.x,否则需要

    isinstance(<var>, (int, long))
    

    不要使用type。在Python中,这几乎永远不是正确的答案,因为它阻止了多态性的所有灵活性。例如,如果你子类化int,则你的新类应注册为int,但type不会这样做:

    class Spam(int): pass
    x = Spam(0)
    type(x) == int # False
    isinstance(x, int) # True
    

    这符合Python强大的多态性:你应该允许行为类似于的任何对象int,而不是强制将其作为一个对象。

    BUT

    不过,经典的Python思维是要求宽恕比准许更容易。换句话说,不要检查是否x为整数。假设是,如果不是,则捕获异常结果:

    try:
        x += 1
    except TypeError:
        ...
    

    抽象基类的使用逐渐淡化了这种思想。抽象基类使你可以从一个特殊构造的类继承对象,从而准确地注册对象应具有的属性(添加,乘以,加倍)。那将是最好的解决方案,因为它将完全允许那些具有必要和足够属性的对象,但是你必须阅读有关如何使用它的文档。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看