如果使用func()具有多个输出,如何获得函数输出的长度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果使用func()具有多个输出,如何获得函数输出的长度?相关的知识,希望对你有一定的参考价值。

我有一个像这样的函数列表:

list_of_functions = [func1, func2, func3]

[每个函数输出一个单独的字典列表,例如context_dicts,否则可能会输出类似以下内容:

context_dicts = func1
context_dicts, output1, output2 = func2

在脚本的另一部分中,我对每个函数执行后的context_dicts的长度感兴趣,所以我有:

def get_summary():
   counts = []

   for func in list_of_functions:
      if callable(func):
         if something:
            count = len(func())
            counts.append('count': count)

   return counts

但是如果我的输出只是context_dicts没问题,我会得到列表的实际长度,但是如果我叫func2,那么len(func())实际上会给我3,因为这是输出的数量。无论如何,如何始终获得context_dicts的长度?

答案

@@ PavelBotsman给了我一个关于如何寻找答案的想法,所以我只是测试输出是元组还是音符(因为函数的结构不会输出列表),所以基本上是这样:

if isinstance(func(), tuple):
   len(func()[0]) 
else:
   len(func())

谢谢

以上是关于如果使用func()具有多个输出,如何获得函数输出的长度?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 for 循环返回多个具有唯一名称的 pandas 数据帧?

如何从 Matlab 调用具有多个输出的 C++ 函数?

具有多个输出的 VB 函数 - 结果分配

函数式编程中的基本概念

函数式编程中的基本概念

php函数以获取数据,将具有通用字段名称的多个表连接起来并显示输出[重复]