函式的詳細介紹

2021-10-10 17:36:15 字數 2399 閱讀 1387

函式也是乙個物件 函式用來儲存一些可執行的**,並且可以在需要時,對這些語句進行多次 呼叫

1 語法

2def 函式名(

[形參1

,形參2..

..])

:3 **塊

注意:

函式名必須符合識別符號的規範(可以包含字母、數字、下劃線但是不能以數字開頭)

print是函式物件 print()是呼叫函式

1.2.1 形參和實參
形參(形式引數) 定義形參就相當於在函式內部宣告了變數,但是並不是賦值

實參(實際引數)指定了形參,那麼在呼叫函式時必須傳遞實參,實參將會賦值 給對應的形參,簡單來說有幾個形參就要有幾個實參

1.2.2 函式的傳遞方式
定義形參時,可以為形參指定預設值。指定了預設值以後,如果使用者傳遞了引數則預設值不會⽣效。如果⽤戶沒有傳遞,則預設值就會生效

位置引數:位置引數就是將對應位置的實參賦值給對應位置的形參

關鍵字引數 : 關鍵字引數可以不按照形參定義的順序去傳遞,而根據引數名進行傳遞

混合使用位置引數和關鍵字引數的時候必須將位置引數寫到關鍵字引數前面去

定義函式時,可以在形參前面加乙個*,這樣這個形參可以獲取到所有的實 參,它會將所有的實參儲存到乙個元組中

帶*號的形參只能有乙個,可以和其他引數配合使用

*形參只能接受位置引數,不能接受關鍵字引數

**形參可以接收其他的關鍵字引數,它會將這些引數統一儲存到字典當中。字 典的key就是引數的名字,字典的value就是引數的值

**形參只有乙個,並且必須寫在所有引數的後面

傳遞實參時,也可以在序列型別的引數前新增星號,這樣它會自動的將序列 中元素依次作為引數傳遞 要求序列中的元素的個數必須和形參的個數一致

返回值就是函式執行以後返回的結果

通過return來指定函式的返回值

return後面可以跟任意物件,返回值甚至可以是乙個函式

help()是python中內建函式,通過help()函式可以查詢python中函式的方法

在定義函式時,可以在函式內部編寫文件字串,文件字串就是對函式的說明

作用域(scope) 作用域指的是變數生效的區域 在python中一共有兩種作用域

全域性作用域

全域性作用域在程式執行時建立,在程式執行結束時銷毀 所有函式以外的區域都是全域性作用域

在全域性作用域中定義的變數,都是全域性變數,全域性變數可以在程式的任意 位置進行訪問 函式作用域

函式的返回值

文件字串

函式的作用域 函式作用域在函式呼叫時建立,在呼叫結束時銷毀 函式每調一次次就會產乙個個新的函式作用域 在函式作用域中定義的變數,都是區域性變數,它只能在函式內部被訪問

命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典 locals()用來獲取當前作用域的命名空間

如果在全域性作用域中呼叫locals()則獲取全域性命名空間,如果在函式作用域中呼叫locals()則獲取函式命名空間

返回值是乙個字典

遞迴是解決問題的一種方式,它的整體思想,是將乙個大問題分解為乙個個 的小問題,直到問題無法分解時,在去解決問題 遞迴式函式有2個條件

基線條件 問題可以被分解為最小問題,當滿足基線條件時,遞迴就不 執行了

遞迴條件 可以將問題繼續分解的條件

接收函式作為引數,或者將函式作為返回值返回的函式就是高階函式

將函式作為返回值也是高階函式我們也稱為閉包

閉包的好處

通過閉包可以建立一些只有當前函式能訪問的變數

可以將一些私有資料藏到閉包中

形成閉包的條件

函式巢狀

將內部函式作為返回值返回

內部函式必須要使用到外部函式的變數

我們可以直接通過修改函式中的**來完成需求,但是會產生以下一些問題

如果修改的函式多,修改起來會比較麻煩

不方便後期的維護

這樣做會違反開閉原則(ocp)

程式的設計,要求開發對程式的擴充套件,要關閉對程式的修改

通過裝飾器,可以在不修改原來函式的情況下來對函式進⾏擴充套件

在開發中,我們都是通過裝飾器來擴充套件函式的功能的

Select 函式詳細介紹

linux下select函式的使用 一.select 函式詳細介紹 負值 select錯誤 正值 某些檔案可讀寫或出錯 0 等待超時,沒有可讀寫或錯誤的檔案 在有了select後可以寫出像樣的網路程式來!舉個簡單的例子,就是從網路上接受資料寫入乙個檔案中。二.另乙個例子 include includ...

Signal 函式詳細介紹

include typedef void sighandler t int sighandler t signal int signum,sighandler t handler include include int main int argc,char argv include include ...

Oracle trunc 函式的詳細使用介紹

oracle trunc 函式的用法 日期 1.select trunc sysdate from dual 2011 3 18 今天的日期為2011 3 18 2.select trunc sysdate,mm from dual 2011 3 1 返回當月第一天.3.select trunc s...