第七節課 高階函式

2021-10-14 18:13:02 字數 2433 閱讀 5058

目錄:

1.函式結構

2.引數列表

3.裝飾器

4.作用域

一. 函式結構:

def 函式名(引數列表):

——函式體

——return 返回值

不呼叫不執行

二.引數列表:

1.必須引數:呼叫時必須傳值,

2.預設引數:呼叫時可以不傳值。

如:def test(a,b=2)

其中b為預設引數,不傳值時預設為2。

3.不定長引數:元組式,字典式

*args為元組式,返回為元組。

**kwargs為字典式,返回為字典。

4.攢參順序:首先是必須函式,然後是預設引數,元組,字典。

除必須函式外,其他的位置可調換,但要通過指定引數的形式給予賦值。

可迭代:用for迴圈時不用range就可迴圈的資料結構。

如:for i in list:

三.裝飾器

(一)閉包:

1.有外部函式,有內部函式(巢狀函式)

2.內部函式使用外部函式的變數(用到就行,最少乙個)

3.外部函式返回內部函式名。

例:

def

outter()

: age =

18def

inner()

:print

(age)

return inner

#呼叫該函式

inerl = outter(

)#inerl相當於返回了inner函式

inerl()#或

outter()(

)

2.裝飾器的意義:已知乙個函式,要對函式進行改變,但不想修改原函式。

——自己領悟吧!!!!

#有一函式a

deflongin

(name,word)

:if name ==

"admin"

and word ==

"123456"

:print

("登陸成功"

)else

:print

("登陸失敗"

)#現要將a修改,加入驗證碼(在不修改a的情況下)。

defouter

(args)

:def

inner

(name, word)

: val =

input

("請輸入驗證碼:"

)if val ==

"1234"

: args(name, word)

return longin

@outer

deflongin

(name,word)

:if name ==

"admin"

and word ==

"123456"

:print

("登陸成功"

)else

:print

("登陸失敗"

)val =

"1234"

name =

"admin"

word =

"123456"

longin(name,word)

四.作用域:1.global:在函式內改變函式外的值。

v =

12def

test()

:global v

v +=

10print

(v)test(

)

2.nonlocal:內層函式改變外層函式變數。

def

test()

: v =

12def

test2()

:nonlocal v

v +=

10print

(v)return test2(

)test(

)

3.看根在哪,在頂格用global,在外函式裡用nonlocal

v =

12def

test()

:global v

v +=

12def

test2()

:global v

v +=

10print

(v)return test2(

)test(

)

第七節 指標

go語言有指標這一概念。直接上 func pointtest 定義int型別的值a,並且賦值為3 定義int型別指標變數p,並且取a的位址賦值給p 輸出a和p 控制台 3 0xc00000a0a8 3 process finished with exit code 0 a的值為3,p為a在記憶體中的...

第七節 覆蓋虛介面

有時候我們需要表達一種抽象的東西,它是一些東西的概括,但我們又不能真正的看到它成為乙個實體在我們眼前出現,為此物件導向的程式語言便有了抽象類的概念。c 作為乙個物件導向的語言,必然也會引入抽象類這一概念。介面和抽象類使您可以建立元件互動的定義。通過介面,可以指定元件必須實現的方法,但不實際指定如何實...

第七節 結構體

1,下面程式是執行結果是?include include struct stu void fun struct stu p intmain1 fun students 1 system pause return0 2,喝汽水,1瓶汽水1元,2個空瓶可以換一瓶汽水,給20元,可以多少汽水 程式設計實現...