(一)Python入门-5函数:06参数类型-位置参数-默认值参数-命名参数-可变参数-强制命名参数

参数的几种类型:

  位置参数:

    函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为: “位置参数”

  默认值参数:

    我们可以为某些参数设置默认值,这样这些参数在传递时就是可选的。称为“默认值参数”。 默认值参数放到位置参数后面。

  命名参数:

    我们也可以按照形参的名称传递参数,称为“命名参数”,也称“关键字参数”。

  可变参数:

    可变参数指的是“可变数量的参数”。分两种情况:

      1. *param(一个星号),将多个参数收集到一个“元组”对象中。

      2. **param(两个星号),将多个参数收集到一个“字典”对象中。

  强制命名参数:

    在带星号的“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”。

#测试参数的类型:位置参数、默认值参数、命名参数、可变参数、强制命名参数
def test01(a,b,c,d):    #位置参数、命名参数
    print('{0}--{1}--{2}--{3}'.format(a,b,c,d))

def test02(a,b,c=30,d=40):          #默认值参数,必须位于其他参数后面
    print('{0}--{1}--{2}--{3}'.format(a, b, c, d))

def f1(a,b,*c):    #可变参数处理(元组)
    print(a,b,c)
def f2(a,b,**c):     #可变参数处理(字典)
    print(a, b, c)
def f3(a,b,*c,**d):     #可变参数处理(元组+字典)
    print(a,b,c,d)

def f(*a,b,c):      #强制命名参数
    print(a,b,c)

test01(10,20,30,40)     #位置参数,参数个数不匹配时会报错
test01(d=11,c=22,a=33,b=44)    #命名参数,通过形参名称来匹配
test02(66,99)
test02(66,99,555)

f1(1,2,3,4,5)       #可变参数,3,4,5会放到元组中
f2(1,2,name='jack',age=18,sal=3000)     #可变参数,后面数据会放到字典中
f3(1,2,3,4,5,name='jack',age=18)        #可变参数,后面数据会根据规则放到元组、字典中

f(1,2,3,b=5,c=6)        #强制命名参数:“可变参数”后面增加新的参数,必须在调用的时候“强制命名参数”

运行结果:

  10--20--30--40
  33--44--22--11
  66--99--30--40
  66--99--555--40
  1 2 (3, 4, 5)
  1 2 {'name': 'jack', 'age': 18, 'sal': 3000}
  1 2 (3, 4, 5) {'name': 'jack', 'age': 18}
  (1, 2, 3) 5 6

原文地址:https://www.cnblogs.com/jack-zh/p/10840557.html