關鍵字引數和預設值
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 個數限定 ...