【问题标题】:What exactly is a caller in python?python中的调用者到底是什么?
【发布时间】:2018-11-26 17:05:57
【问题描述】:

如果这个问题太基本/太明显,我们深表歉意,但在搜索此处和数据模型文档后,我找不到合理的答案。

我的问题很简单,python 3 中的调用者到底是什么?有严格的定义吗?

例如,我知道调用另一个函数的函数称为调用者。所以:

def f1():
    pass
def f2():
    f1()

f2 是 f1 的调用者。但是赋值语句呢?

x = f2()

x 是 f2 的调用者吗?它也是f1的调用者吗?很明显,函数定义末尾的 return 语句向调用者返回了一个值,所以我假设在这种情况下 x 既是 f2 的调用者,又是 f1 的调用者,但是我只想检查是否有更深的/调用者的技术含义是什么?

我发现了这个问题I don't understand "return" in Python and what is a caller?,但我无法理解。

【问题讨论】:

  • 我会说f1 调用f2xf2() 的结果 - 我不会称任何人为“调用者” - 这有什么关系?
  • 您好,我不确定我是否理解为什么 f1 调用 f2? stackoverflow.com/questions/2654113/… 这个问题似乎暗示应该反过来,但我不太确定。没有实际原因,但我一直看到调用者被使用,但我意识到我实际上并不知道它的确切含义!
  • ups ... 错字 --- f2 调用 f1 ,很抱歉造成混淆 - 我有时获得了 CS 学位,但我认为我从未将函数作为调用者或被调用者 :)
  • @masiewpao 这很公平。就我个人而言,我从未使用过或听说过使用过这个词(尽管我听说过 “调用函数” 和类似的词)
  • 我会说f2 是调用者,但请注意,在这种情况下,并非每个函数调用都有调用者;没有要求每个函数调用都发生在另一个函数中。

标签: python python-3.x


【解决方案1】:

函数的调用者是发生函数调用的程序代码单元。这可以是另一个函数、方法(特定类型的函数),或者在 Python 中,是 Python 源代码文件“顶级”中的代码——通常称为脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    相关资源
    最近更新 更多