63-函數的參數

函數的參數

一.形參和實參

1.1 形參

在函數定義階段括號內定義的參數,稱之爲形式參數,簡稱形參,本質就是變量名。函數

def func(x, y):
    print(x)
    print(y)

1.2 實參

在函數調用階段括號內傳入的參數,稱之爲實際參數,簡稱實參,本質上就是變量的值。code

func(1,2)

二.位置參數

2.1 位置形參

在函數定義階段。按照從左到右的順序依次定義參數,稱之爲位置形參it

def func(x, y):
    print(x)
    print(y)

特色:按照位置定義的形參,都必須被傳值,多一個不行,少一個也不行io

2.2 位置實參

在函數調用階段,按照從左到右的順序以此定義的實參,稱之爲實參class

func(1,2)變量

特色:按照位置爲對應的形參傳值總結

三.關鍵字實參

在調用函數時,按照key=value的形式爲指定的參數傳值,稱之爲關鍵字實參word

func(x=1,y=2)di

特色:能夠打破位置的限制,可是你仍能夠爲指點的形參賦值

注意:

  1. 能夠混用位置實參和關鍵字實參,可是位置實參必須在關鍵字實參的左邊
  2. 能夠混應位置實參和關鍵字實參,可是不能對一個實參重複賦值
func(x, y=2)
func(y=2, x)  # SyntaxError: positional argument follows keyword argument
func(x, x=1)  # NameError: name 'x' is not defined

四.默認形參

在定義階段就已經被賦值

def func(x, y=10):
    print(x)
    print(y)
    
func(2)

特色:在定義階段就已經被賦值,意味着在調用時能夠不用爲其賦值。

注意:

  1. 位置形參必須放在默認形參的左邊。
  2. 默認形參的值只在定義階段賦值一次,也就是說默認參數的值在函數定義階段就已經固定了。
m = 123

def b(x=m):
   print(x)

m = 111
b()

#123
  • 默認參數的值通產是不可變類型

五.總結

  • 實參的應用:取決於我的習慣
  • 形參的應用:
    1. 大多數狀況的調用值同樣,就應該將該參數定義成位置形參
    2. 大多數狀況的調用值同樣,就應該將該參數定義成默認形參
相關文章
相關標籤/搜索