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前后是不是也是这个道理呢?

  • 相关阅读:
    手机APP远程空气质量监测应用
    SPI
    2017-10-14
    常量声明
    ios- nil NULL 和 NSNull
    Xcode搭建真机调试环境 图文实例
    ios notification
    集合对象总结
    集合对象(NSSet,NSMutableSet,NSIndexSet)
    词典对象(NSDictionary和NSMutableDictionary)
  • 原文地址:https://www.cnblogs.com/hh2737/p/9176598.html
Copyright © 2011-2022 走看看