zoukankan      html  css  js  c++  java
  • python *args 和 ** kwargs

    可变长度的参数

    *args的使用方法

          *args 用来将参数打包成tuple给函数体调用

    可见,1这个参数,被打包成了一个元组

    def func(*args):
        print(args,type(args))
    
    func(1)
    -->>
    (1,) <class 'tuple'>
    

      

    *args是可变参数,x,y已经又1,2传参,*args就得到3,4。

    def func(x,y,*args):
        print(args,type(args))
    
    func(1,2,3,4)
    

      

    **kwargs的使用方法

          **kwargs 打包关键字参数成dict给函数体调用

    参数被打包成了一个字典

    def func(**kwargs):
        print(kwargs,type(kwargs))
    
    func(a=2,b=2)
    -->>
    {'a': 2, 'b': 2} <class 'dict'>
    

      

    常见的用法:

    def test(data,**kwargs):
        instance = kwargs.pop('instance',False)
        context = kwargs.pop('context',{})
        print(data,instance,context)
    
    test(data='xxx', instance=True)
    -->
    xxx True {}
    #有一个固定参数data
    #剩下的是选择性传参的kv对,如果没有传这个参数,就使用pop设定默认值。
    

      

  • 相关阅读:
    RichEdit
    用 RAD Studio 柏林版创建 IoT 应用程序
    延时程序
    SQL if exists用法
    Firemonkey限制TEdit只能输入数字的完美方法
    leetcode 树
    leetcode string
    clone-graph
    surrounded-regions merge-intervals
    leetcode链表题
  • 原文地址:https://www.cnblogs.com/jabbok/p/11213707.html
Copyright © 2011-2022 走看看