函式的作用域和預設引數

2021-08-03 03:54:08 字數 997 閱讀 6961

一、預設引數

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...