實參和形參

今日內容

實參和形參:

''' 實參:調用函數,在括號內傳入的實際值,值能夠爲常量、變量、表達式或三者的組合 ***** 形參:定義函數,在括號內聲明的變量名,用來接受外界傳來的值,外部提早產生了的變量,內部能夠使用 '''''' 注:形參隨着函數的調用而產生,隨着調用結束而銷燬 '''

 

實參:

'''
位置實參:不用明確形參名的傳參方式,必定按照位置給形參傳值
關鍵字實參:必須明確形參名字與值爲形參傳值,能夠不用按照位置


*****
注:混用
1.關鍵字實參必須出如今位置實參後
2.多個位置實參仍是按照位置傳參
3.關鍵字實參爲沒有從位置實參拿到值的形參傳值,能夠不用按照指定順序
'''
def fn2(a, b, c, d, e, f):
    print(a, b, c, d, e, f)

fn2(10, 20, 30, e=100, f=500, d=200)

位置形參的範疇:

    • 位置形參
# positional argument
def fn(a, b, c):
    print(a, b, c)
    
# 位置形參能夠由 位置實參 與 關鍵字實參 來傳值
fn(10, 20, 30)
fn(a=10, b=20, c=30)
  • 默認形參的
    def fn(a=10,b=20):
        print(a, b)
        
    # 默認形參能夠由 位置實參 與 關鍵字實參 來傳值,還能夠不用傳值(採用自身默認值)
    fn()
    fn(20, 30)
    fn(a=200, b=300)
    fn(100)  # 就給a傳
    fn(b=100)  # 就給b傳
    
    
    # 混用
    # 位置形參與默認形參同時存在,默認形參必須在後
    def fn1(a,b,c=10,d=20):
        print(a, b, c, d)
    
    # 位置形參必須傳值,默認形參分狀況傳值
    fn1(100, 200, d=1000)
  • 可變長形參
    # 可變長形參會以 元組 形式接受 位置形參與默認形參未接受完的 全部傳入的位置實參,用索引來取第幾個
    # 可變長形參只能由 位置實參 來傳值  *****
    def fn(a, b=10, *args):
        print(a, b)
        print(args)
        
        
    # 小細節:可變長形參只能接受位置實參的值,位置實參還必須在關鍵字實參前,
    #       致使默認形參只能由位置實參來傳值
    fn(1, 20, 100, 200) # 1給a  20給b,不能用b=20傳  100,200給args

關鍵字形參範疇:

# 前提:出如今 * 以後的形參
def fn(a, b=10, *, c, d=20, e):
    pass
# c,d,e都是出如今*以後,都是關鍵字形參,因爲必須由 關鍵字實參 來傳值,沒有順序的強行要求


# 可變長關鍵字形參:用來接收沒有被關鍵字形參接收完的關鍵字形參,也只能由關鍵字實參來傳值
# 用字典來存放數據
def fn(**kwargs):
    print(kwargs)
fn(a=10,b=20)  # {'a': 10, 'b': 20}

dic = {'x': 100, 'y': 200}
fn(**dic)  # {'x': 100, 'y': 200}

參數總結:

def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
    pass
# 位置形參:a、b
# 默認形參:c
# 可變長位置形參:args
# 無初值關鍵字形參:d、f
# 有初值關鍵字形參:e
# 可變長關鍵字參數:kwargs


# 1.位置形參與默認形參: 能用 位置實參 關鍵字實參 傳值
# 2.可變長位置形參:只能 位置實參 傳值
# 3.因此關鍵字形參:只能 關鍵字實參 傳值
相關文章
相關標籤/搜索