python在另一个函数中调用函数

python在另一个函数中调用函数,python,Python,我有下面的代码 def num_dim(response_i, m): for response_j in response_i['objcontent']: if response_i['objkey']== 'explorecube_dimvalues': mm = [response_j['title']] m.append(mm) m=(len(m)) return m if __name__=='__main_

我有下面的代码

 def num_dim(response_i, m):

   for response_j in response_i['objcontent']:
      if response_i['objkey']== 'explorecube_dimvalues':
         mm = [response_j['title']]
         m.append(mm)

   m=(len(m))
   return m


if __name__=='__main__':

    for response_i in response['response']:
        m=[ ]
        x=0
        def num_dim_2(response_i, m):
           if response_i['objkey']== 'explorecube_dimvalues':
               m = num_dim(response_i, m)
               print(m)
           return m
        num_dimentions= num_dim_2 (response_i, m)
        print(num_dimentions)
print(m)
的输出为:

3
[ ] 
[ ]
3
[ ]
但是
打印(num\u dimensions)
的输出是:

3
[ ] 
[ ]
3
[ ]
我只希望有3个


任何人都知道如何解决此问题(将值3作为最终输出)。谢谢。

这是因为下面的代码

def num_dim_2(response_i, m):
           if response_i['objkey']== 'explorecube_dimvalues':
               m = num_dim(response_i, m)
               print(m)
           return m
即使
如果
条件失败,仍会执行
return m
语句,这将返回一个空白列表

此外,您正在循环内执行
print(num\u dimensions)
,这意味着打印值的次数与执行循环的次数相同。如果您只需要一个输出,则必须根据某些条件打印它


注意:使用相同的变量名并重用不同类型的变量名(例如:在
num\u dim
中,
m
是一个列表,突然
m
是一个整数!)

这是因为下面的代码

def num_dim_2(response_i, m):
           if response_i['objkey']== 'explorecube_dimvalues':
               m = num_dim(response_i, m)
               print(m)
           return m
即使
如果
条件失败,仍会执行
return m
语句,这将返回一个空白列表

此外,您正在循环内执行
print(num\u dimensions)
,这意味着打印值的次数与执行循环的次数相同。如果您只需要一个输出,则必须根据某些条件打印它


注意:使用相同的变量名并重用不同类型的变量名(例如:在
num\u dim
中,
m
是一个列表,突然
m
是一个整数!)

为什么要在for循环中创建函数?只需像第一次那样创建函数,然后在需要时调用它。此外,我们不知道什么是响应['response'],因此很难理解循环。您知道您正在修改函数输入,对吗?您正在修改函数中的参数
m
(这是一个列表,作为引用传递),并且您也在返回它?!这没有道理。整个代码都是乱七八糟的。为什么要在for循环中创建函数?只需像第一次那样创建函数,然后在需要时调用它。此外,我们不知道什么是响应['response'],因此很难理解循环。您知道您正在修改函数输入,对吗?您正在修改函数中的参数
m
(这是一个列表,作为引用传递),并且您也在返回它?!这没有道理。整个代码都是胡言乱语。