3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)你“調(diào)用”一個(gè)函數(shù)時(shí),你基本上只是告訴程序執(zhí)行該函數(shù)。所以,如果你有一個(gè)添加兩個(gè)數(shù)字的函數(shù),例如:
def add(a,b):
return a + b
你可以這樣調(diào)用這個(gè)函數(shù):
add(3,5)
這將返回8.在這種情況下,你可以在括號(hào)中加上任何兩個(gè)數(shù)字。你也可以調(diào)用這樣的函數(shù):
answer = add(4,7)
在這種情況下,將變量答案設(shè)置為11。

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
我會(huì)給出一個(gè)稍微高級(jí)的答案。在Python中,函數(shù)是第一類對(duì)象。這意味著它們可以“動(dòng)態(tài)創(chuàng)建,銷毀,傳遞給函數(shù),作為值返回,并具有編程語(yǔ)言中其他變量的所有權(quán)限”。
在Python中調(diào)用函數(shù)/類實(shí)例意味著調(diào)用該__call__對(duì)象的方法。對(duì)于舊式類,類實(shí)例也是可調(diào)用的,但前提是創(chuàng)建它們的對(duì)象具有__call__方法。這同樣適用于新式類,除了新實(shí)例類沒(méi)有“實(shí)例”的概念。相反,它們是“類型”和“對(duì)象”。
從Python 2數(shù)據(jù)模型頁(yè)面引用,對(duì)于函數(shù)對(duì)象,類實(shí)例(舊樣式類)和類對(duì)象(新樣式類),“ x(arg1, arg2, ...)是”的簡(jiǎn)寫x.__call__(arg1, arg2, ...)。
因此,無(wú)論何時(shí)使用簡(jiǎn)寫定義函數(shù),def funcname(parameters):您實(shí)際上只是使用方法創(chuàng)建對(duì)象,__call__而簡(jiǎn)寫__call__就是命名實(shí)例并使用包含調(diào)用參數(shù)的括號(hào)來(lái)跟隨它。因?yàn)楹瘮?shù)是Python中的第一類對(duì)象,所以它們可以使用動(dòng)態(tài)參數(shù)動(dòng)態(tài)創(chuàng)建(因此接受動(dòng)態(tài)參數(shù))。這對(duì)于稍后將閱讀的裝飾器函數(shù)/類非常方便。
現(xiàn)在我建議閱讀官方Python教程。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
“調(diào)用”意味著在代碼中引用一個(gè)寫在別處的函數(shù)。這個(gè)函數(shù)“調(diào)用”可以用于標(biāo)準(zhǔn)Python庫(kù)(隨Python安裝的東西),第三方庫(kù)(其他人寫的你想要使用的東西),或者你自己的代碼(你寫的東西)。例如:
#!/usr/env python
import os
def foo():
return "hello world"
print os.getlogin()
print foo()
我創(chuàng)建了一個(gè)名為“foo”的函數(shù),稍后使用該print語(yǔ)句調(diào)用它。我導(dǎo)入了標(biāo)準(zhǔn)的“os”Python庫(kù),然后在該庫(kù)中調(diào)用了“getlogin”函數(shù)。
添加回答
舉報(bào)