函數;{必備參數,關鍵字參數,預設參數[此參數必須跟在其他參數後面],動态參數}
--------------------------------------------------------------------------------------------------------
函數的作用域(分4種):
L:local ,本地(局部)作用域;即函數中定義的變量;
E;eclosing;嵌套父級函數的局部作用域; 既包含此函數的上級函數的局部作用域,但不是全局
G;global;全局變量(作用域):即子產品級别定義的變量
B;build-in ;系統子產品裡的變量;
優先級:LEGB
def myself_info(name,age):
print ('Name:%s',%name,'Age:%s',%s)
myself_info('eric',28)#必備參數
-------------------------------------------------------
def myself_info(name,age):
print ('Name:%s',%name,'Age:%s',%s)
myself_info(Age=28,Name='eric')#關鍵參數
def myself_info(name,age,sex='male'):
print ('Name:%s',%name,'Age:%s',%Age)
print ('Sex: %s',%Sex)
myself_info('eric',28)#預設參數
-------------------------------------------
def add(*args):
print(args)
sum = 0
for i in args:
sum+=i
print(sum)
add(1,2,3,4,6,8,9)#動态參數(不定長參數)
---------------------n
('eric', 30) {'job': 'IT', 'hobby': 'games'}
------------------------------------------------
#函數名可以進行指派,函數名也可做為函數的參數,和還作為函數的傳回值;
def foo():
def inner():
return 8
return inner
foo()#這裡調用執行的是inner的記憶體位址
result = foo ()#指派
print(result()):這裡加括号的調用才是真正的拿到結果;
def f(n):
return n*n
def foo (x,y,func):
result = func(x)+func(y)#x=1,y=2;func執行就是f這個函數
return result
re = foo(1,2,f) #這裡的f指f,這個函數被當參數傳進來了;
print(re)
5