Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 创建返回长度的函数_Python_Python 3.x - Fatal编程技术网

Python 创建返回长度的函数

Python 创建返回长度的函数,python,python-3.x,Python,Python 3.x,我想创建一个函数,返回不同输入对象的长度,如果没有长度,则返回-1。预期输出如下: my_dict = {'a': 23, 'b': 8} len_safe(my_dict) 2 len_safe(7) -1 我想使用异常处理,但对如何开始感到困惑 如果没有len(),则始终可以捕获类型错误并返回-1: 我不确定这类函数的可用性,但是如果没有len(),您总是可以捕获类型错误并返回-1: 我不确定这类函数的可用性,但是。您可以使用它来检查对象是否有\uu len\uuu

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

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

我想使用异常处理,但对如何开始感到困惑

如果没有
len()
,则始终可以捕获
类型错误并返回
-1


我不确定这类函数的可用性,但是如果没有
len()
,您总是可以捕获
类型错误并返回
-1

我不确定这类函数的可用性,但是。

您可以使用它来检查对象是否有
\uu len\uuu
作为属性,否则返回
-1

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

>>> safe_len(7)
-1
>>> safe_len([1,2,3])
3
您可以使用检查对象是否将
\uuu len\uuu
作为属性,否则返回
-1

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

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

为什么要返回一些幻数而不是抛出异常并处理它?为什么要返回一些幻数而不是抛出异常并处理它?