3.5 新增新函式
目前為止,我們只是在使用Python提供的函式,但新增新函式也是有可能的。函式定義詳細說明了一個新函式的名稱和當函式被呼叫時將執行的一系列語句。
這是一個例子:
def print_lyrics():
print "I'm a lumberjack, and I'm okay."
print "I sleep all night and I work all day."
def是一個關鍵字,它指出這是一個函式定義。函式的名稱是print_lyrics。對函式名稱的要求和對變數名稱的要求相同:字母,資料和一些標點符號是合法的,但第一個字元不能是數字。你不能使用一個關鍵字作為函式的名稱,並且你應該避免變數和函式具有相同的名稱。
函式名後的空圓括號指出這個函式不接收任何引數(arguments)。
函式定義的第一行被叫作函式頭(header),剩餘的部分被叫作函式體(body)。函式頭必須以一個冒號結尾,並且函式體必須縮排。按照慣例,縮排總是4個空格(另見 3.14)。函式體可以包含許多語句。
列印語句中的字串被雙引號包圍。單引號和雙引號做著相同的事。除了單引號(也稱為撇號)出現在字串中的情況,大多數人都使用單引號。
如果你在互動模式中鍵入一個函式定義,直譯器列印省略號(...)以使你知道函式定義是不完整的:
>>> def print_lyrics():
... print "I'm a lumberjack, and I'm okay."
... print "I sleep all night and I work all day."
...
為了結束函式,你必須輸入一個空行(在指令碼中這不是必須的)。
定義的函式建立了一個具有相同名字的變數。
>>> print print_lyrics
<function print_lyrics at 0xb7e99e9c>
>>> type(print_lyrics)
<type 'function'>
變數print_lyrics的值是一個函式物件,它具有函式型別。
呼叫這個新函式的語法和呼叫內建函式的語法相同:
>>> print_lyrics()
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
一旦你定義了一個函式,你就可以在另一個函式中使用它。例如,為了重複之前的副歌,我們可以寫一個叫作repeat_lyrics的函式:
def repeat_lyrics():
print_lyrics()
print_lyrics()
然後呼叫函式repeat_lyrics:
>>> repeat_lyrics()
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
但是這首歌並不是真的這麼唱。
相關文章
- Vue3.5新增的baseWatch讓watch函式和Vue元件徹底分手Vue函式元件
- .NET3.5新特性,Lambda表示式
- .net framework3.5新特性:Lambda表示式Framework
- Laravel 新增自定義助手函式Laravel函式
- 【原創】.net framework3.5新特性1:Lambda表示式Framework
- .net framework 3.5 新特性Framework
- vue3.5新特性Vue
- JavaScript 工具函式大全(新)JavaScript函式
- ajax 下載Excel 新增回撥函式Excel函式
- jQuery如何實現新增自定義函式jQuery函式
- openGauss系統函式新增指導函式
- JMeter36個內建函式及11個新增函式介紹JMeter函式
- 【高數覆盤】3.5函式的極值與最大最小值函式
- Java8的新特性--函式式介面Java函式
- java8 新特性之函式式介面Java函式
- Spring 5 新特性:函式式Web框架Spring函式Web框架
- JDK8新特性之函式式介面JDK函式
- 在MTK中新增TASK與常用函式分析函式
- [MSSQL]固定長度新增分隔符函式SQL函式
- oracle 10g 新增:自定義聚集函式Oracle 10g函式
- .NET Framework 3.5 版中的新增功能(6)[整理]Framework
- .NET Framework 3.5 版中的新增功能(5)[整理]Framework
- .NET Framework 3.5 版中的新增功能(4)[整理]Framework
- Java8新特性探索之函式式介面Java函式
- EMQX 多版本釋出、新增自定義函式功能MQ函式
- Clickhouse新增bitmap分頁函式(水了個PR)函式
- JDK新提議:新增Record記錄的"with"表示式JDK
- PHP 7.4 新特性之箭頭函式PHP函式
- PHP新特性之閉包、匿名函式PHP函式
- PHP 7.4 新語法:箭頭函式PHP函式
- PHP 7.4 新特性 —— 箭頭函式 2.0PHP函式
- Angular 14 新的 inject 函式介紹Angular函式
- Laravel 字串輔助函式新成員Laravel字串函式
- PHP4新函式集錦 (轉)PHP函式
- .Net3.5新特性-擴充套件方法套件
- Cell中新增Switch元件如何執行不同的函式元件函式
- TDengine 2.6 正式釋出,新增大量計算函式函式
- 如何為新增的元素註冊事件處理函式事件函式