【问题标题】:Python function recalls itself after return statement?Python函数在return语句后召回自己?
【发布时间】:2018-12-15 08:24:30
【问题描述】:

这个问题相当学术。我在python中遇到了以下行为:

此代码:

def dosth():
   print("new")
   for n in range(0,10):
       return False
dosth()

实际上给了我 10 个打印件而不是一个。那么函数在return语句之后是否因为没有break而递归调用自己呢? 如果我在 return 语句之前休息一下,我仍然会得到 2 个打印,而不是只有一个。 有人可以解释这种行为吗

【问题讨论】:

  • 我知道 - 这不是我想使用的代码,这只是好奇。是的,n 正在循环 10 次调用,但它应该在第一次调用之后返回,那么怎么会有另一个打印?此外,打印甚至不在循环中。
  • 所以当我尝试这个程序时,我只看到它打印一次。你确定你的格式是一致的吗?在此处检查输出:colab.research.google.com/drive/…

标签: python python-3.x return


【解决方案1】:

我只看到打印了一个new

您似乎在循环结束时缺少冒号 : for n in range(0,10)

def dosth():
   print("new")
   for n in range(0,10):
       return False
dosth()
# prints 'new' once...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 2022-11-17
    • 2018-03-07
    • 2013-10-12
    • 2020-05-18
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多