欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python中可變函數(shù)怎么定義

python中可變函數(shù)怎么定義?

如果我們想要在調(diào)用函數(shù)時(shí),少輸入一些變量。我們可以在定義函數(shù)值,輸入一些默認(rèn)的參數(shù)值:

def add(a, b = 2, c = 3):

return a + b + c

print(add(2))

output: 7

1

2

3

4

1

2

3

4

add函數(shù)有3個(gè)變量,那么我們?cè)诙x它的時(shí)候,后倆個(gè)變量被我們賦予了默認(rèn)參數(shù)值分別是2和3。若沒有在調(diào)用時(shí),明確給出后倆個(gè)變量的參數(shù)值,那么python會(huì)自動(dòng)調(diào)用默認(rèn)參數(shù)值。

合法調(diào)用方式:

add(2),add(2,3),add(2,4,5)

非法定義方式:

def add(a,b = 2, c):

return a + b + c

1

2

3

4

5

1

2

3

4

5

但是要注意,當(dāng)你定義了第一個(gè)變量的默認(rèn)參數(shù)值后,那么后面的變量必須全部都帶有默認(rèn)參數(shù)值。

參數(shù)量可變的函數(shù)定義

在python中有一個(gè)? *?運(yùn)算符,來實(shí)現(xiàn)可變參數(shù)的函數(shù)定義。

*的用法,列表的解包:

arg = [2,4]

for i in range(*arg):

print(i)

字典的解包,直接為函數(shù)提供關(guān)鍵字以及參數(shù):

d = {'a':1,'b':2,'c':3}

def add(a,b,c):

return a + b + c

print(add(**d))

output:6

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

當(dāng)存在一個(gè)形式為 **name 的最后一個(gè)形參時(shí),它會(huì)接收一個(gè)字典,其中包含除了與已有形參相對(duì)應(yīng)的關(guān)鍵字參數(shù)以外的所有關(guān)鍵字參數(shù)。 這可以與一個(gè)形式為 *name,接收一個(gè)包含除了與已有形參列表以外的位置參數(shù)的 元組 的形參組合使用 (*name 必須出現(xiàn)在 **name 之前。) 例如,如果我們這樣定義一個(gè)函數(shù):

def cheeseshop(kind, *arguments, **keywords):

print("-- Do you have any", kind, "?")

print("-- I'm sorry, we're all out of", kind)

for arg in arguments:

print(arg)

print("-" * 40)

for kw in keywords:

print(kw, ":", keywords[kw])

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

8

我們可以這樣去調(diào)用它:

cheeseshop("Limburger", "It's very runny, sir.",

"It's really very, VERY runny, sir.",

shopkeeper="Michael Palin",

client="John Cleese",

sketch="Cheese Shop Sketch")

1

2

3

4

5

1

2

3

4