一:返回值
當沒有顯式地返回元素時,python 會返回乙個none。如果函式返回多個物件,python 把他們聚集起來並以乙個元組返回。
二:建立函式
1:強烈推薦,在函式體之前,編寫函式的文件字串。
2:在某些語言中,函式宣告和函式定義區分開的。但在python中,將這兩者視為一體,函式的子句由宣告的標題行以及隨後的定義體組成的。
3:和其他高階語言類似,python 也不允許在函式未宣告(定義)之前,對其進行引用或者呼叫。下面給出幾個例子來看一下:
deffoo():
'in foo()
'bar()
此時如果呼叫函式foo(),肯定會失敗,因為函式bar()還沒有定義:
>>>foo()infoo()
traceback (innermost last): file
"", line 1, in
?file
"", line 3, infoo
nameerror: bar
現在在函式foo()前給出bar()的定義:
defbar():
'in bar()
'def
foo():
'in foo()
'bar()
現在可以安全的呼叫foo(),而不會出現任何問題:
>>>foo()infoo()
in bar()
甚至也可以在函式bar()前定義函式foo():
deffoo():
'in foo()
'bar()
defbar():
'in bar()
' >>>foo()
infoo()
in bar()
這段**是正確的因為:即使(在foo()中)對bar()進行的呼叫出現在bar()的定義之前,但foo()本身不是在bar()宣告之前被呼叫的。換句話說,先宣告foo(),然後再宣告bar(),接著呼叫foo(),但是到那時,bar()已經存在了,所以呼叫成功。(這一點,在c語言中,是不成立的。)
4:除了加注釋幫助理解函式之外,還有一種方式就是文件字串。如果在函式的開頭寫下字串,它就會作為函式的一部分進行儲存,稱為文件字串。
5:函式也具有屬性,可以自定義任何函式屬性,可以在函式體之外定義函式屬性。比如:
deffoo():
'foo() -- properly created doc string
'foo.
__hehe__ = '
foohehe
'def
bar():
pass
bar.
__doc__ = '
oops, forgot the doc strabove
'bar.version = 0.1bar.hehe = '
barhehe
'
三:內部函式
在函式體內置立另外乙個函式(物件)是完全合法的。這種函式叫做內部/內嵌函式。比如:
defouter():
'in outer
'def
inner():
'in inner
'inner()
outer()
結果是:
inouter
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關鍵字定義,該關鍵字僅表...