17

“呼叫”是什么意思和作用?你会如何在 Python 中“调用”一个函数?

4

4 回答 4

25

当您“调用”一个函数时,您基本上只是在告诉程序执行该函数。因此,如果您有一个添加两个数字的函数,例如:

def add(a,b):
    return a + b

你会这样调用函数:

add(3,5)

这将返回 8。在这种情况下,您可以将任意两个数字放在括号中。你也可以像这样调用函数:

answer = add(4,7)

在这种情况下,这会将变量 answer 设置为 11。

于 2013-10-02T06:22:30.553 回答
19

我会给出一个稍微高级的答案。在 Python 中,函数是一等对象。这意味着它们可以“动态地创建、销毁、传递给函数、作为值返回,并拥有编程语言中其他变量所拥有的所有权利”。

在 Python 中调用函数/类实例意味着调用该__call__对象的方法。对于旧式类,类实例也是可调用的,但前提是创建它们的对象具有__call__方法。这同样适用于新式类,除了新式类没有“实例”的概念。相反,它们是“类型”和“对象”。

正如Python 2 数据模型页面所引用的,对于函数对象、类实例(旧式类)和类对象(新式类),“x(arg1, arg2, ...)是”的简写x.__call__(arg1, arg2, ...)

因此,每当您使用简写定义函数时,def funcname(parameters):您实际上只是使用方法创建了一个对象,__call__而 for 的简写__call__只是命名实例并在其后面加上包含调用参数的括号。因为函数是 Python 中的第一类对象,所以可以使用动态参数动态创建它们(因此接受动态参数)。这对于稍后将阅读的装饰器函数/类非常有用。

现在我建议阅读官方 Python 教程

于 2013-10-02T06:36:40.673 回答
3

“调用”意味着在您的代码中引用在别处编写的函数。可以对标准 Python 库(随 Python 安装的东西)、第三方库(其他人编写的您想使用的东西)或您自己的代码(您编写的东西)进行此函数“调用”。例如:

#!/usr/env python

import os

def foo():
    return "hello world"

print os.getlogin()
print foo()

我创建了一个名为“foo”的函数,并在稍后使用该打印语句调用它。我导入了标准的“os”Python 库,然后在该库中调用了“getlogin”函数。

于 2013-10-02T06:24:40.413 回答
0

当你调用一个函数时,它被称为“调用”一个函数。例如,假设您已经定义了一个函数,可以像这样找到两个数字的平均值 -

def avgg(a,b) :
        return (a+b)/2;

现在,要调用该函数,您可以这样做。

x=avgg(4,6)
print x

x 的值为 5 。

于 2013-10-02T06:27:10.247 回答