zoukankan      html  css  js  c++  java
  • python笔记之强制函数以关键字参数传参

    最近学习python,学到了函数传参,看到了以下这个特殊情况,特此来做个笔记

    def add(*, x, y):

        print(x, y)

    以上函数定义后,该怎么传参?前面的那个*号是做什么用的?

    我们可不可以照以下方式 传参?

    add(5, 6, 7),这样传参可不可以?会不会有错?

    我们来看结果

    提示参数过多,看来这样传参不对

    看来这样也不行

    这样也不可以,那怎么传才对呢?按道理上面的传法应该是正确的为什么还报错?

    这次终于对了,为什么呢,因为定义函数参数时候,如果定义了位置参数,并且在最前面加了*号,那么位置参数就必须以关键字的方式传参了,否则就会报错了。

    来看下变种

    def add(x, *, y, z):

        print(x, y, z)

    以上参数该怎么传?

    add(5)可以吗?

    提示缺少2个参数, y z并且要求是关键字参数,那么第一个参数是正确的,只是缺少参数

    这次可以了,由此可见,*号后面的参数必须以关键字传参,*号前面是正常的位置参数,那么我们想下*args前后是不是也是这个道理呢?

  • 相关阅读:
    Python笔试题(递归)
    MYSQL经典面试题
    Linux常用命令
    HTTP协议相关面试题
    Flask面试题
    史上最全DVWA 笔记
    ssh root Permission denied
    odoo Reference 选择model 然后选择record
    定体, 定压, 定温, 绝热 Q E A 公式
    Vmware Bluetooth
  • 原文地址:https://www.cnblogs.com/hh2737/p/9176598.html
Copyright © 2011-2022 走看看