You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何判断函数传入参数是否为整数

现有代码问题分析

你当前写的代码存在两个可优化的点:

  • 仅做了打印提示,没有按照需求返回/抛出错误信息
  • 使用type(n_int) is int做判断存在局限性:无法识别int的子类实例,比如Python内置的布尔值True/False是int的子类,不管你是需要兼容合法的int子类,还是特意要把布尔值排除在合法参数外,这个判断逻辑都满足不了需求。

优化实现方案

方案1:严格匹配int类型,排除所有子类(包括布尔值)

如果你的需求就是只允许原生int类型传入,不接受任何子类,可在原有判断基础上修改为抛出Python标准类型错误,符合通用代码规范:

def an_int(n_int):
    if type(n_int) is int:
        print("good")
        # 此处写参数为整数时的正常业务逻辑
    else:
        # 抛出标准类型错误,附带自定义提示
        raise TypeError("参数必须为整数类型")

如果不需要抛出错误,而是要返回错误提示字符串,把raise行改为return "错误:参数必须为整数类型"即可。

方案2:接受int子类,仅排除布尔值

绝大多数场景下我们需要兼容int的子类实现,同时要避免把布尔值误判为整数,这种场景用isinstance判断再加布尔值排除即可,是更推荐的通用实现:

def an_int(n_int):
    if isinstance(n_int, int) and not isinstance(n_int, bool):
        print("good")
        # 此处写参数为整数时的正常业务逻辑
    else:
        raise TypeError("参数必须为整数类型")

内容的提问来源于stack exchange,提问作者Anne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:15:07