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表示式
- Laravel 新增自定義助手函式Laravel函式
- openGauss系統函式新增指導函式
- vue3.5新特性Vue
- JMeter36個內建函式及11個新增函式介紹JMeter函式
- ajax 下載Excel 新增回撥函式Excel函式
- JavaScript 工具函式大全(新)JavaScript函式
- 【高數覆盤】3.5函式的極值與最大最小值函式
- JDK8新特性之函式式介面JDK函式
- Java8的新特性--函式式介面Java函式
- java8 新特性之函式式介面Java函式
- Clickhouse新增bitmap分頁函式(水了個PR)函式
- EMQX 多版本釋出、新增自定義函式功能MQ函式
- Java8新特性探索之函式式介面Java函式
- Cell中新增Switch元件如何執行不同的函式元件函式
- TDengine 2.6 正式釋出,新增大量計算函式函式
- Android - 利用擴充套件函式為Bitmap新增文字水印Android套件函式
- PHP新特性之閉包、匿名函式PHP函式
- PHP 7.4 新特性之箭頭函式PHP函式
- PHP 7.4 新語法:箭頭函式PHP函式
- PHP 7.4 新特性 —— 箭頭函式 2.0PHP函式
- Angular 14 新的 inject 函式介紹Angular函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- JDK新提議:新增Record記錄的"with"表示式JDK
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- Java8新特性-四大核心函式式介面Java函式
- 第7章 IF函式 COUNTIF函式 SUMIF函式函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- (譯) 函式式 JS #2: 函式!函式JS
- VsCode 新增檔案頭部註釋和函式註釋[koroFileHeader]VSCode函式Header
- 三十分鐘成為 Contributor | 為 TiKV 新增 built-in 函式UI函式
- 核函式 多項式核函式 高斯核函式(常用)函式
- 第 8 節:函式-匿名函式、遞迴函式函式遞迴
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- java8新特性之函式式介面、lambda表示式、介面的預設方法、方法和建構函式的引用Java函式
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- main函式的入口函式AI函式