首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >巨蟒。调用另一个函数内部的函数

巨蟒。调用另一个函数内部的函数
EN

Stack Overflow用户
提问于 2016-12-27 20:25:44
回答 1查看 68关注 0票数 0

我有下面这段代码。

代码语言:javascript
运行
复制
 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)的输出为:

代码语言:javascript
运行
复制
3

但是print(num_dimentions)的输出是:

代码语言:javascript
运行
复制
[ ] 
[ ]
3
[ ]

我预计只有3个。

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

EN

回答 1

Stack Overflow用户

发布于 2016-12-27 20:44:35

这是因为下面这段代码。

代码语言:javascript
运行
复制
def num_dim_2(response_i, m):
           if response_i['objkey']== 'explorecube_dimvalues':
               m = num_dim(response_i, m)
               print(m)
           return m

即使if条件失败,仍然会执行return m语句,这将返回一个空白列表。

此外,您将在循环内执行print(num_dimentions),这意味着只要执行循环,就会打印同样多的值。如果您只需要一个输出,则必须根据某些条件打印它。

注意:使用相同的变量名并重用不同类型的变量名真的不是一个好的编程实践(例如:在num_dim中,m是一个列表,而m突然变成了某个整数!)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41345187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档