【问题标题】:What happens to a returned object when there's nothing to return it to?当没有任何东西可以返回时,返回的对象会发生什么?
【发布时间】:2017-10-06 21:19:00
【问题描述】:

这只是我脑海中突然出现的一件有趣的事情。想象一个场景,当你有

def returner():
    return 6

然后你叫它:

six = returner()

现在 6 已返回给six。但是当你像下面这样调用函数时,6 会发生什么?

returner()

返回的值会被完全丢弃吗?还是分配给某个隐藏变量?

【问题讨论】:

  • 它被丢弃了。
  • @Kasramvd 仅在 Python 交互式解释器会话中发生。
  • @juanpa.arrivillaga 我很好奇,“丢弃”是否意味着立即垃圾收集和内存释放?也许这是另一个问题......
  • 好吧,不能保证 when 它会被垃圾收集,实际上它取决于 Python 实现(例如 CPython 使用引用计数,但 IronPython 使用其他东西,例如)。但几乎,是的,它会立即被垃圾收集,即使它不是立即的,你也无法访问它,因为不存在引用。

标签: python return


【解决方案1】:

如果你在交互式解释器上,它会被打印出来,如果独立运行,它会被丢弃。

【讨论】:

  • 另外,在使用交互式解释器时,它被分配给_
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多