11 函式和函式程式設計

2021-09-01 08:00:15 字數 836 閱讀 8995

函式和函式程式設計:

函式和過程:

函式一般指可以呼叫的實體,接受一些引數,經過一定處理後,最後向呼叫者返回一些值。

過程一般指沒有返回值的函式。

將過程當作函式的語言一般會將過程的返回值(return nothing)處理成乙個特殊的type,像c中的void;在python中就是none

python的函式返回乙個值或者乙個物件,但有時會有這樣的返回

return 'abc',[4-2j,'python']
其實上述也是乙個物件,乙個元組容器物件,因為元組語法上不是需要帶上圓括號。

根據上面的返回值, 可以通過下面三種方式來儲存返回值

atuple=bar()

a,b=bar()

(a,b)=bar()

python是動態語言,動態確定型別而且函式能返回不同的型別的值,所以沒有型別關聯。過載不是語言的特性,需要使用type()內建函式作為**,來模擬c的過載。

函式區別於其他物件的唯一一點就是函式的可呼叫性,也就是說函式也是可以呼叫的,可以傳遞當作引數的,可以成為列表或者字典中的物件 。

函式引用

>>> def foo():

… print 'in foo()'

…>>> bar = foo

>>> bar()

in foo()

函式傳遞當作引數

>>> def bar(argfunc):

… argfunc()

…>>> bar(foo)

in foo()

第11章 函式和函式式程式設計 1

11.1 什麼是函式?11.1.2 返回值和函式型別 把過程看待成函式的語言通常對於 什麼都不返回 的函式設定了特殊的型別或者值的名字。這些函式在c中預設為 void 的返回型別,意思是沒有值返回。在python中,對應的返回物件型別是none。當沒有顯式地返回元素或者如果返回none時,pytho...

第11章 函式和函式式程式設計 2

11.3.6 函式 與方法 裝飾器 裝飾器是在函式呼叫之上的修飾。這些修飾僅是當宣告乙個函式或者方法的時候,才會應用的額外呼叫。裝飾器的語法以 開頭,接著是裝飾器函式的名字和可選的引數。緊跟著裝飾器宣告的是被修飾的函式和裝飾函式的可選引數。decorator dec opt args def fun...

第11章 函式和函式式程式設計 6

11.9 遞迴 如果乙個新的呼叫能在相同過程中較早的呼叫結束之前開始,那麼該過程就是遞迴。def factorial num if num 1 return num else return num factorial num 1 factorial 20 2432902008176640000l f...