一、預設引數
1)不指定,就使用預設引數
stanf(student) #不會報錯
2)沒有預設值得引數我可以叫做必填引數
3)預設引數可以定義多個
def stamf(a,b=2,c=3)
4)定義函式的時候一定是必選引數在前,預設引數在後
二、可變引數 (儲存在乙個元組tuple)
示例:a的平方+b的平方....
1)def cal(number):
total=0
for n in number:
total=total+n*n
return total
可以用list或tuple存放引數
cal([1,33,44,2]) 或cal((1,33,44,2))
2)def cal(*number):
total=0
for n in number:
total=total+n*n
return total
解析:引數前加上*後這個引數就變為乙個可變引數
可以傳入任意多的引數
python直譯器會把傳入的引數存入乙個tuple中,賦值給number
引數展開
nums=[1,2,3]
cal(*nums)
三、關鍵字引數(儲存在乙個字典dict)
允許在呼叫函式時,傳入任意個含引數名的引數 key:value的形式
def stu(name,age,**krgs):
print name,age,'other':krgs
stu('bob',35,city='beijing')
>>>'bob',35,'city':'beijing'
引數展開
stuaa=
stu('bob',33,**stuaa)
四、變數的作用域
函式裡面的變數稱之為區域性變數;
函式外面的變數稱之為全域性變數global
python函式預設引數作用域
當def函式引數預設值為物件時,例如列表,字典 示例1 猜測一下,會輸出什麼?def ddd a,b return b print ddd 1 print ddd 2,a b c print ddd 3 1 a b c 2 3 你是否認為是這樣?輸出一下看看 輸出結果 1 a b c 2 1,3 看...
函式引數,作用域
def foo x,y,args,a 1,b,kwargs print x,y print args print a print b print kwargs foo 1,2,3,4,5,b 8,c 4,d 5 1 2 3,4,5 18 後定義的引數,必須被傳值 有預設值的除外 且必須按照關鍵字實參...
函式的引數作用域
注意理解 1 var x 1 function f x,y x f 2 2 2 let x 1 function f y x f 1 3 function f y x f referenceerror x is not defined 4 var x 1 function foo x x foo r...