1、必須參數(位置參數)
必需參數:先用形式參數定義,然后在調用時對應位置使用實參(具體的數值)調用,定義的形式參數和調用的實際參數必需一一對應(順序、數量)。
def sum(a, b):
return a + b
sum(5, 6)
2、關鍵字參數
關鍵字參數:先使用形式參數定義,然后調用時以關鍵字的形式(形式參數 = 實際參數)傳入參數,函數調用時不關心參數的順序。
def sub(a, b):
return a - b
s1 = sub(a=6, b=3)
s2 = sub(b=3, a=0)
s3 = sub(9, b=3)
3、默認參數
def mul(a, b=3, c=2):
print("a:{0}, b:{1}, c:{2}".format(a, b, c))
return a*b*c
print(mul(2))
print(mul(2, b=4)) #若要對默認值參數重新賦值,需要使用 關鍵字=值 的形式傳參
print(mul(2, b=4, c=6))
(1)以*args形式聲明參數在函數內使用args獲取傳入的參數(args的值是由參數構成的元組)
def fun(*args):
print(args)
#調用示例1
fun(1, 2, 3, 4, 'a')
fun()
fun(4,'a')
#調用示例2
l = [1, 2, 3, 4]
t = ('a', 'b', 'c')
d = {1:2, 2:3, 3:4}
#當傳入參數為列表、元組、或者字典的時候,參數名字前需要加*
fun(*l)
fun(*t)
fun(*d)
(2)**kwargs形式的可變參數,在函數內部kwargs是一個字典,字典的key是我們傳入的形式參數的名字,值為實際參數的值,若以字典形式傳入時,注意字典的key必須時字符串
def fun(**kwargs):
print(kwargs)
#調用形式1:
fun(a = 1, b = 2, c = 3)
fun()
#調用形式2
d = {'1':2,'2':3,'3':4}
fun(**d)
5、必須關鍵字參數
必須關鍵字參數:對於必須關鍵字參數 在傳入時必須以關鍵字形式傳入,一般需要寫在所有參數的最后部分,與其他形式的參數之間用 * 隔開。
def funkw(a, k=0, *, city, age):
print(a)
print(k)
print(city)
print(age)
#正確的調用
funkw(20, city='西安', age=30)
#錯誤的調用
#funkw(20, k=23, '西安', 30)