Python基礎 12函式細節

2022-07-03 15:30:26 字數 2182 閱讀 8497

一:返回值

當沒有顯式地返回元素時,python 會返回乙個none。如果函式返回多個物件,python 把他們聚集起來並以乙個元組返回。

二:建立函式

1:強烈推薦,在函式體之前,編寫函式的文件字串。

2:在某些語言中,函式宣告和函式定義區分開的。但在python中,將這兩者視為一體,函式的子句由宣告的標題行以及隨後的定義體組成的。

3:和其他高階語言類似,python 也不允許在函式未宣告(定義)之前,對其進行引用或者呼叫。下面給出幾個例子來看一下:

def

foo():

print

'in foo()

'bar()

此時如果呼叫函式foo(),肯定會失敗,因為函式bar()還沒有定義:

>>>foo()

infoo()

traceback (innermost last): file

"", line 1, in

?file

"", line 3, infoo

nameerror: bar

現在在函式foo()前給出bar()的定義:

def

bar():

print

'in bar()

'def

foo():

print

'in foo()

'bar()

現在可以安全的呼叫foo(),而不會出現任何問題:

>>>foo()

infoo()

in bar()

甚至也可以在函式bar()前定義函式foo():

def

foo():

print

'in foo()

'bar()

defbar():

print

'in bar()

' >>>foo()

infoo()

in bar()

這段**是正確的因為:即使(在foo()中)對bar()進行的呼叫出現在bar()的定義之前,但foo()本身不是在bar()宣告之前被呼叫的。換句話說,先宣告foo(),然後再宣告bar(),接著呼叫foo(),但是到那時,bar()已經存在了,所以呼叫成功。(這一點,在c語言中,是不成立的。)

4:除了加注釋幫助理解函式之外,還有一種方式就是文件字串。如果在函式的開頭寫下字串,它就會作為函式的一部分進行儲存,稱為文件字串。

5:函式也具有屬性,可以自定義任何函式屬性,可以在函式體之外定義函式屬性。比如:

def

foo():

'foo() -- properly created doc string

'foo.

__hehe__ = '

foohehe

'def

bar():

pass

bar.

__doc__ = '

oops, forgot the doc strabove

'bar.version = 0.1bar.hehe = '

barhehe

'

三:內部函式

在函式體內置立另外乙個函式(物件)是完全合法的。這種函式叫做內部/內嵌函式。比如:

def

outer():

print

'in outer

'def

inner():

print

'in inner

'inner()

outer()

結果是:

in

outer

in inner

內部函式在外部函式的作用域之內。如果沒有任何對inner ()的外部引用,那麼除了在函式體內,任何地方都不能對其進行呼叫。

五:傳遞函式

在python中,函式也是一種物件,所以,函式可以被引用的,也作為引數傳入函式,以及作為列表和字典等等容器物件的元素。

函式有乙個獨一無二的特徵使它同其他物件區分開來,那就是函式是可呼叫的

12 python基礎 函式

12.1 函式簡介一段具有特定功能的 可重用的語句組 函式規則 1.def 2.return 表示式 結束函式,不帶表示式的return相當於返回 none 作用 降低程式設計難度和 復用def 函式名 引數 引數是佔位符 函式體return 返回值 引數是輸入 函式體是處理 結果是輸出 ipo 函...

Python基礎 細節

1.語句和語法 進號 表示之後的字元為python注釋 換行 n 是標準的行分隔符 通常乙個語句一行 反斜線 繼續上一行 分號 將兩個語句連線在一行中 冒號 將 塊的頭和體分開 語句 塊 用縮排塊的方式體現 不同的縮排深度分割不同的 快 python檔案以模組的形式組織。2.有兩種例外情況乙個語句不...

Python基礎 12 匿名函式lambda

程式語言中函式的應用 塊重複 降低 的冗餘 塊複雜 提高程式可讀性 python中由兩種函式 1 def定義的函式 2 lambda函式 python支援所謂的 匿名 或者 lambda 函式。匿名函式是一種通過單個語句生成函式的方式,其結果是返回值。匿名函式使用lambda關鍵字定義,該關鍵字僅表...