目錄:
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元,可以多少汽水 程式設計實現...