构建基于数据类型的if语句时的最佳实践?

时间:2014-06-04 00:54:24

标签: python if-statement types

我正在构建一个基于数据类型的if语句的基本函数。我想知道使用是否有任何问题:

if type(number) == int:

之类的:

def distance_from_zero(number):
"""Takes input 'number', checks datatype. If integer or floating point, returns absolute value. If other, returns 'Nope'"""
if type(number) == int:
    return abs(number)
elif type(number) == float:
    return abs(number)
else:
    return "Nope"

distance_from_zero(45)

在if语句中使用数据类型是否更清晰/更好?

3 个答案:

答案 0 :(得分:4)

为什么要检查?

try:
    return abs(number)
except TypeError:
    return 'Nope'

答案 1 :(得分:2)

您可以使用isinstance()

if isinstance(number, (int, float)):
    return abs(number)

答案 2 :(得分:1)

我没有看到该代码有任何问题,尽管您可以更简单地将其编写为:

if type(number) in (int, float):
    return abs(number)
else:
    return "Nope"