“通话”的意思是什么?你会如何“调用”Python中的函数?
答案 0 :(得分:19)
当你“调用”一个函数时,你基本上只是告诉程序执行该函数。因此,如果您有一个添加了两个数字的函数,例如:
def add(a,b):
return a + b
你可以这样调用这个函数:
add(3,5)
将返回8.在这种情况下,您可以在括号中放入任意两个数字。你也可以调用这样的函数:
answer = add(4,7)
在这种情况下,将变量answer设置为11。
答案 1 :(得分:12)
我会给出稍微高级的答案。在Python中,函数是first-class objects。这意味着它们可以“动态创建,销毁,传递给函数,作为值返回,并具有编程语言中其他变量的所有权限。”
在Python中调用函数/类实例意味着调用该对象的__call__
方法。对于旧式类,类实例也是可调用的,但前提是创建它们的对象具有__call__
方法。这同样适用于新式类,除了新实例类没有“实例”的概念。相反,它们是“类型”和“对象”。
引自Python 2 Data Model page,对于函数对象,类实例(旧样式类)和类对象(新式类),“x(arg1, arg2, ...)
是x.__call__(arg1, arg2, ...)
的简写”
因此,无论何时使用简写def funcname(parameters):
定义函数,您实际上只是使用方法__call__
创建对象,而__call__
的简写只是命名实例并按照它括号中包含调用的参数。因为函数是Python中的第一类对象,所以它们可以使用动态参数动态创建(因此接受动态参数)。这对于稍后将阅读的装饰器函数/类非常方便。
目前我建议您阅读Official Python Tutorial。
答案 2 :(得分:2)
“call”意味着在代码中引用一个写在别处的函数。这个函数“调用”可以用于标准Python库(随Python安装的东西),第三方库(其他人写的你想要使用的东西),或者你自己的代码(你写的东西)。例如:
#!/usr/env python
import os
def foo():
return "hello world"
print os.getlogin()
print foo()
我后来用print语句创建了一个名为“foo”的函数和名为的函数。我导入了标准的“os”Python库,然后我称为该库中的“getlogin”函数。
答案 3 :(得分:0)
当你调用一个函数时,它被称为'调用'一个函数。 例如,假设您已经定义了一个函数,可以找到两个数字的平均值 -
def avgg(a,b) :
return (a+b)/2;
现在,要调用该函数,你会喜欢这样。
x=avgg(4,6)
print x
x的值为5。