python函式的高階應用詳解

2022-09-24 10:48:12 字數 1573 閱讀 8370

函式是我們所熟知的,在python中函式的定義格式如下:

def 函式名(形式引數):

函式體 函式的封裝就是實現**塊的復用,python內建了一些基礎的函式,開發者也可以自己定義函式,函式只能先定義,再進行呼叫。

1、程式遇到函式呼叫的情況時,暫停執行

2、將實際引數值傳遞給函式引數

3、執行函式體語句

4、返回值並繼續向下執行

引數的打包指的是多個引數可以同時處理,也叫可變長度引數, 可變長度引數在定義函式時主要有兩種形式*parameter和**parameter,前者用來接受任意多個引數並將其放在乙個元組當中,後者接收多個關鍵引數組成鍵值對並將其放在字典當中。

打包為元組

def demo程式設計客棧(*p):

print(p)

demo(1,2,3,4,5,6)

#結果(1,2,3,4,5,6)

打包為字典

def demo(**p):

print(p)

demo(x=1,y=2,z=3)

#結果#引數的打包就是將形參設為*引數名形式,實參為多個引數,這是後會將多個引數處理為元組或字典的可迭代物件,是把個體打包為整體。

與引數的打包相對應,引數的解包同樣也有s和**s兩種形式,呼叫含有多個位置引數的函式時,可以使用列表,元組,集合等可迭代物件作為實參,在實參名前面加乙個,python會自動對其進行解包,並把序列中的值分別傳遞給多個形參變數。

def demo(a,b,c,d):

print(a+b*c/d)

list1=[1,2,3,4]

dewww.cppcns.commo(*list1)

#結果2.5

如果實參是乙個字典,可以使用**引數名的形式對其進行解包操作,會把字典轉換成為類似關鍵引數的形式進行引數傳遞。對於這種形式的序列解包,要求實參字典中的所有鍵必須是函式形參的名稱,或者與函式中兩個型號的可變長度引數相對應。

s=def demo(a,b,c=4)

print(a,b,c)

demo(**s)

#結果1 2 3

變數的作用域就是變數能夠作用的空間

變數按照作用域劃分:全域性變數,區域性變數

全域性變數在函式內外都能夠使用,但在函式內不能直接修改全域性變數, 如果在函式內修改全域性變數,必須新增 global 關鍵字(python不推薦在函式內修改全域性變數的值)

區域性變數是在函式內定義的變數,在函式體外區域性程式設計客棧變數是無效的

在函式內定義的區域性變數和函式外定義的全域性變數是兩個概念(變數同名)

a=1def sum()

a=3#這裡函式外的a和函式內的a是兩個變數 hyfgwomwp

函式doc文件是用於描述函式功能,是函式內的特殊注釋

def sum(a,b):

'''返回兩個數的和

'''return a+b

__name__方法

>>> print(print.__name__)

print

>>>

__doc__方法

本文標題: python函式的高階應用詳解

本文位址: /jiaoben/python/440058.html

高階函式的應用

高階函式 函式引數如果是函式,或者這個函式返回乙個新的函式 aop 面相切面程式設計 主要作用是把一些跟核心業務邏輯模組無關的功能抽離出來。例如 日誌統計,異常處理等。把這些功能抽離出來後,通過 動態植入 的方法,摻入到業務邏輯模組中。這樣做的好處是保證業務邏輯模組的純淨和高內聚,其次可以方便的復用...

python 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

EXCEL if 函式的高階應用

if 函式的巢狀使用 如果按等級來判斷某個變數,if函式的格式如下 if e2 85,優 if e2 75,良 if e2 60,及格 不及格 函式從左向右執行。首先計算e2 85,如果該表示式成立,則顯示 優 如果不成立就繼續計算e2 75,如果該表示式成立,則顯示 良 否則繼續計算e2 60,如...