Python函式之引數(二)

2021-09-03 01:45:28 字數 1677 閱讀 7472

關鍵字引數和預設值

def hello_l(greeting, name):

print('%s , %s!'%(greeting,name))

hello_l('hello','world')#位置引數

hello_l(greeting='hello',name='world')#關鍵字引數

輸出:hello , world!

hello , world!

例如,hello函式可能需要名字作為引數,但是也允許使用者定義自己的名字,問候語和標點:

**實現:

def hell_q(name,greeting='hello',punctuation='!'):

print('%s,%s%s'%(name,greeting,punctuation))

hell_q('mars')

hell_q('mars','howdy')

hell_q('mars','howdy','...')

hell_q('mars',punctuation='')

hell_q('mars',greeting='top of the morning to ya')

輸出:mars,hello!

mars,howdy!

mars,howdy...

mars,hello

mars,top of the morning to ya!

收集引數

讓使用者提供任意數量的引數:

例如能像下面這樣儲存多個名字:

store (data, name1,name2,name3)
給使用者提供任意多的引數,可以像下面這樣定義函式:

def print_params(*params):#引數前的星號將所有值放置在同乙個元組中。(收集其餘的位置元素)

print(params)

print_params('testing')

print_params(1,2,3)

輸出:('testing',)#結果作為元組列印出來

(1, 2, 3)

處理關鍵字引數的時候,用「**」

**:

def hih(**p):

print(p)

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

輸出:#可以看出輸出的是乙個字典而不是元組

作用域

變數可以看做是值的名字。在執行x=1賦值語句後,名稱x引用到值1。這就像用字典一樣,鍵引用值,變數和所對應的值用的是個「不可見」的字典。內建的vars函式可以返回這個字典:

x=1

scope=vars()

print(scope['x'])

scope['x']+=1

print(x)

輸出:1

2

警告:一般來說,vars所返回的字典是不能修改的。

這類「不可見字典」叫做命名空間或者作用域。

函式內部的變數稱為區域性變數,函式外的變數稱為全域性變數。

巢狀作用域

python函式是可以巢狀的,也就是說將乙個函式放在另乙個裡面。

Python基礎之函式的引數 二

函式引數總結 在python中函式引數的定義方式有一下4中方式。1 位置引數 2 關鍵字引數 3 預設引數 4 可變引數 args,kwargs 在我們在傳參的時候,實參傳遞的順序按照形參定義的順序進行傳遞的傳參方式。練習1 建立乙個求和函式,使用必須引數傳遞 defsum 2 num num1,n...

Python之函式 引數

defpower x x就是乙個位置引數 return x x power 3 9 defpower x n 2 n即是預設引數,函式定義時傳入預設值 s 1 while n 0 n n 1 s s x return s power 2 函式呼叫時可以不傳入n的值,此時n即為預設值2 4 power...

Python函式之引數

1.預設形參 可以讓呼叫者有選擇地傳遞需要的資料,不寫引數則使用預設值 def functionname parameter1 defaultvalue1 functionbody e.g.deffun01 a,b,c 0 print a print b print c 2.位置形參 1 個數限定 ...