创建一个返回长度的函数

时间:2018-07-15 21:45:46

标签: python python-3.x

我想创建一个返回不同输入对象长度的函数,如果没有长度则返回-1。预期输出如下:

    my_dict = {'a': 23, 'b': 8}
    len_safe(my_dict)
2
    len_safe(7)
-1

我想使用异常处理,但是对于如何启动感到困惑。

2 个答案:

答案 0 :(得分:2)

您始终可以捕获TypeError,如果没有-1,则返回len()

def len_safe(obj):
    try:
        return len(obj)
    except TypeError:
        return -1

我不确定此类功能的可用性。

答案 1 :(得分:1)

您可以使用hasattr来检查对象是否具有__len__作为属性,否则返回-1

def safe_len(o):
     return len(o) if hasattr(o, '__len__') else -1

实际情况:

>>> safe_len(7)
-1
>>> safe_len([1,2,3])
3