Python學習第十天 函式補充

2021-08-22 06:10:27 字數 2615 閱讀 3983

4.1可變引數

形參個數不明確時,可以吧形參設定為可變引數

格式:

def 函式名 (*形參名)

方法體return 結果

呼叫:函式名(實參,實參,...)

可變的形參變數被當做元組存放

4.2關鍵字引數

關鍵字引數就是呼叫函式的時候允許呼叫者傳入0個或多個帶有形參名的字段資料

當宣告函式時,不知道呼叫者具體傳遞的字段和其對應的資料,這個時候就把這個變數宣告成關鍵字引數

宣告方式:

def 函式名(形參1,形參2,**變數名):

方法體return 結果

​**變數名在函式體中被當做字典存在    變數名 = 資料

def accept_data(name, email, **kwargs):

print(name,email,kwargs)  

accept_data("小沐", "[email protected]", city="北京", ***="女")

輸出:小沐 [email protected]

4.3匿名函式

快捷生成乙個簡易函式的方式

格式:

def add(a, b):

return a+b

可以使用匿名函式完成

f = lambda 形參1,形參2,...:執行語句(一般只有一條)

4.4偏函式

在某些場景下,一些場景的預設需求不能滿足場景,為了便於函式的使用,在原函式的基礎上,修改預設引數來滿足需求

1.自定義函式,在函式內部呼叫原函式並修改原函式的功能

def my_print(src):

print(src, end="!")

my_print("abc")

輸出為:abc!

2.系統提供的生成偏函式的方式

import  functools

a = functools.partial(print,end=「!」)

#此時a()具有print()方法的功能,且結束符為「!」

a("asd")

輸出為:asd!

4.5閉包

乙個函式內有另外乙個函式的宣告

def out():

外部函式體

def in():

內部函式體

內部函式只能在外部函式體重中直接呼叫,在函式外部不可以直接呼叫內部函式

def out():

print("1")

def inin():

print("2")

print("3")

return inin

​a = out()

a()輸出:13

2內部函式在不被呼叫時不會執行

在呼叫外部函式時把內部函式當做返回值返回,才可以在函式外部呼叫內部函式

當內部函式要對外部函式變數進行修改時,用nonlocal修飾

裝飾器:

特殊的閉包:外部函式的返回值是內部函式作用:在不改變原有功能a的基礎上,呼叫a並增加新的功能格式:

def out(引數1): #引數:接收要新增新功能的函式

外部函式體

def inin(*value,**kwargs):#引數,外部函式接收的函式需要的引數

內部函式體

res = 引數1(*value,**kwargs)

return inin

@out() #此時外部函式已經被呼叫

def my():

def out_add(add1):

print("0")

def in_add,輸出1,並返回2+4(num1, num2):

print("1")

sum = add1(num1, num2)

return sum

return in_add

​@out_add # 此時,my_add被當做引數傳給out_add,執行out_add()函式,並返回內部函式in_add,

#之後在呼叫my_add()時,實際上是呼叫的in_add(),

def my_add(a, b):

return a+ b

​print("2")

print(my_add(2,4))

print(my_add(3,4))

輸出:0 #py檔案從上往下順序執行,先執行到@out_add,執行外部函式輸出1,這時內部函式並沒有被呼叫

2 #繼續向下執行輸出2

1 #第一次呼叫my_add,實際上呼叫內部函式in_add,輸出1,並返回2+461

7當為乙個函式新增裝飾器時,裝飾器對應的外部函式只會被執行一次。@外部函式的時候執行的

python學習第十天

class student count 0 def init self,name,age,address self.name name self.age age self.address address student.count 1 k print k w open a.txt w encodin...

python學習第十天

這兩個習題主要是複習各種符號,並且強調編寫長 時要寫一段執行一段修改一段 主要是學習對列表的進一步操作 ten things stuff ten things.split 定義乙個字串變數 用split 函式以空格為分隔標誌分隔字串使之成為列表 more stuff day night song f...

python學習第十天

今日所學內容 位置引數 args 預設值引數 kwargs def yana kind print kind yana 黑蘭州 飛天蘭州 吉祥蘭州 def yanb kind print kind yanb yan1 黑蘭州 yan2 飛天蘭州 yan3 吉祥蘭州 def yanc k,f prin...