isinstance(False, int) 返回 True

我想确定变量是否为整数,因此我使用以下代码:

if isinstance(var, int):
    do_something()

但是当 执行时,函数被执行。var = Falsedo_something

当 时,函数正常工作。var = Noneisinstance()


桃花长相依
浏览 185回答 3
3回答

慕村225694

因为 是 的子类。您可以在以下位置找到它boolintbuiltins.pyclass bool(int):    """    bool(x) -> bool    Returns True when the argument x is true, False otherwise.    The builtins True and False are the only two instances of the class bool.    The class bool is a subclass of the class int, and cannot be subclassed.    """所以也.是 当 的类型是 的派生类时。issubclass(bool, int)Trueisinstance(x, y)Truexy

达令说

在布尔值中被定义为整数的子类。Python3该均值等价于 as 等价于True1False0您可以在此处找到更多详细信息。该链接的完全相同的解释是:There are three distinct numeric types: integers, floating point numbers, and complex numbers. In addition, Booleans are a subtype of integers

HUH函数

Python 将 和 视为 。现在你可以在这里做的是:True1False0try:    var = int(string(False))except ValueError:    print("Invalid Integer")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python