zoukankan      html  css  js  c++  java
  • Python中sorted(iterable, *, key=None, reverse=False)函数参数定义中的独立星号(*)的含义

    老猿在 《Python中函数的参数带星号是什么意思?》中介绍了Python函数中参数带星号的含义,而在实际使用和Python的标准文档中,会看到某写函数(如sorted(iterable, , key=None, reverse=False))的其中一个参数就是星号(),而实际调用时该位置不用传值,这表示什么含义呢?
    使用关键字参数时,要特别注意,如果不是通过《Python中函数的参数带星号是什么意思?》]中带2个星号的可变关键字参数传递可变个数的参数,且参数的名字随调用者随意填写,只能在后期解析参数时去进行处理。
    如果需要限制关键字参数的输入名字,就需要使用到命名关键字参数的形式,所谓命名关键字参数就是给关键字参数限定指定的名字,输入其他名字不能识别。命名关键字参数和位置参数之间使用独立的星号(*)分隔,星号后面为命名关键字参数,星号本身不是参数。凡是命名关键字参数,在调用时必须带参数名字进行调用,否则会报错。
    我们看个例子对比一下:

    >>> def f(x1,x2,y1,y2): #全部是位置参数
    	print(x1,x2,y1,y2)
    
    	
    >>> f(1,2,3,4) #不使用关键字方式传值调用
    1 2 3 4
    >>> f(1,2,y2=4,y1=3)  #使用关键字参数传值
    1 2 3 4
    >>> def f(x1,x2,*,y1,y2):#定义命名参数
    	print(x1,x2,y1,y2)
    
    	
    >>> f(1,2,3,4) #不使用关键参数传值报错
    Traceback (most recent call last):
      File "<pyshell#60>", line 1, in <module>
        f(1,2,3,4)
    TypeError: f() takes 2 positional arguments but 4 were given
    >>> f(1,2,y2=4,y1=3) #使用关键字参数传值
    1 2 3 4
    >>> 
    

    老猿Python,跟老猿学Python! 博客地址:https://blog.csdn.net/LaoYuanPython

  • 相关阅读:
    Redis
    Maven总结
    spring知识点总结
    网上好文搜集整理
    python 代码删除空目录
    plantUML使用指南
    python的基础操作
    八卦基础编程学习
    python历年入坑记录大全
    python实现的百度云自动下载
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11144508.html
Copyright © 2011-2022 走看看