学习好Python就离不开掌握好函数,掌握好函数离不开对参数的透彻理解,所以学号参数的类型及应用很重要。本文分享几点拙见。

工具/原料

  • Python 3.7
  • win10电脑

方法/步骤

  1. 1

    【1】位置参数

    函数调用时,实参默认按位置顺序进行传递,并且要求个数和形参完全匹配。这就是位置参数!

    # 位置参数

     

    def postion_fun(a,b,c):

     

    print("a = {0},b = {1},c = {2}".format(a,b,c))

     

     

    postion_fun(10,59,2019)

     

    postion_fun(10,59)

    案例中的函数定义一个打印接收到的三个参数值。一次调用函数时传入三个实参,另一次调用则只传入两个实参。

    我们看看执行的效果见图:

     

    结论:

    1、传入三个参数的调用成功,并且实参对应函数形参的位置被打印出来;

    2、传入两个参数的调用失败,Python弹出“缺少一个参数c”的报错信息。

  2. 2

    【2】默认参数

    针对位置参数少传一个参数报错的问题,我们是否可以设置一个默认的值呢?这样在函数调用时不用传入该参数时也不会报错。这就是“默认参数”。

    # 默认参数

     

    def default_fun(a,b,c = 2019):

     

    print("a = {0},b = {1},c = {2}".format(a,b,c))

     

     

    default_fun(10,59,"职说职语")

     

    default_fun(10,59)

    案例中的函数定义一个打印接收到的三个参数值,其中一个参数设置了默认值。一次调用传入三个参数,另一次调用传入两个参数。

    结论:

    1、函数调用传入三个参数时,按实参与形参的位置对应关系打印三个实参的值;

    2、函数调用传入两个参数时,按实参与形参的位置对应关系打印两个实参的值和函数定义的一个默认形参值。

  3. 3

    【3】命名参数

    针对位置参数与默认参数调用必须实参与形成位置对应的要求,我们是否可以在调用时制定形参的具体实参值,来规避违背这种要求带来的问题呢?

     

    【结论】采用指定形参的具体实参值是可以增加函数调用的灵活性。

  4. 4

    【4】可变参数:元组

    具体代码见图,通过执行效果可得知:在函数定义时,用*param(一颗星号)表示收集多个参数值组成一个元组。

  5. 5

    【5】可变参数:字典

    # 字典参数

     

    def tuple_fun2(a,b,**c):

     

    print("a = {0},b = {1},c = {2}".format(a,b,c))

     

     

    tuple_fun2(10,59,name="职说职语",job="自由工作者")

     

    结论:在函数定义时,用**param(两颗星号)表示收集多个参数值组成一个字典。

  6. 6

    【6】可变参数:元组与字典参数融合

    # 元组与字典参数

     

    def tuple_fun3(a,b,*c,**d):

     

    print("a = {0},b = {1},c = {2},d = {3}".format(a,b,c,d))

     

     

    tuple_fun3(10,59,2019,"职说职语",name="职说职语",job="自由工作者")

     

    结论:两种参数都可以出现在一个函数中,并且安装实参与形参的对应位置进行结果组装。

  7. 7

    【7】强制命名参数

    我们问最后一个问题:可变参数在函数定义时是否可以放置任意位置呢?函数调用时是否有什么要求呢?

    定义函数时把元组参数放到最前面,那调用函数时,该参数默认是收集所有传入的实参后组成元组,如果要是后面两个参数有值并保证函数调用正常,则必须采用强制命名参数方式制定实参传入形参的值。

    代码及执行效果见图:

    END

总结

  1. 1

    Python函数总共有7类参数,可以灵活使用。

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。