如何正确应用Python类型检查实现整数参数判断功能
实现only_ints函数的方案
你遇到的布尔值被isinstance判定为int的问题,根源是Python中bool类型本身就是int的子类,所以如果要严格排除布尔值、只认纯整数,直接用type()做精确类型匹配即可,不需要用isinstance。
具体实现代码
def only_ints(param1, param2): # type()会返回对象的精确类型,严格匹配int类型即可排除布尔值 return type(param1) is int and type(param2) is int
验证测试结果
only_ints(1, 2)→ 返回True,符合预期only_ints("a", 1)→ 返回False,符合预期only_ints(False, 3)→type(False)为bool,返回False,解决你提到的布尔值误判问题only_ints(2.5, 4)→ 2.5是float类型,返回False
小提示:判断类型时用
is比==更合适,因为Python中的类型对象都是全局单例,is判断的是身份标识,效率和严谨性都更高。
内容的提问来源于stack exchange,提问作者HUNG JOE KIT
相关产品推荐
相关产品推荐

