问:请解释使用 *args 和 **kwargs 的含义

答:

*args:可变参数,表示将实参中按照位置传值,多余的值都给 args,多余的实参被打包成 tuple(元组),然后传递给函数调用

# 定义函数
def func(a,b,*args):
pass func(1,2,c,d,e) # 1被赋值给a,2被赋值给b,
# c,d,e被打包成元组,存在args中

**kwargs:关键字参数,表示形参中按照关键字传值,多余的值(以 k=v 的 形式)都给 kwargs,多余的关键字实参被打包成 dict(字典),然后传递给函数调用

#定义函数
def func(a,b,**kwargs):
pass func(3,4,c=1,d=2) #c,d存在 kwargs 中,以字典的形式存在

注:

*args 是可变参数,args 接收的是一个tuple

**kwargs 是关键字参数,kwargs 接收的是一个dict

如果要同时使用 *args 和 **kwargs ,必须 *args 参数列要在 **kwargs 前

Python【每日一问】07的更多相关文章

  1. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  2. python每日一函数 - divmod数字处理函数

    python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...

  3. 每日一问:Android 消息机制,我有必要再讲一次!

    坚持原创日更,短平快的 Android 进阶系列,敬请直接在微信公众号搜索:nanchen,直接关注并设为星标,精彩不容错过. 我 17 年的 面试系列,曾写过一篇名为:Android 面试(五):探 ...

  4. 每日一问:谈谈 volatile 关键字

    这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下. 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了 ...

  5. 每日一问:讲讲 Java 虚拟机的垃圾回收

    昨天我们用比较精简的文字讲了 Java 虚拟机结构,没看过的可以直接从这里查看: 每日一问:你了解 Java 虚拟机结构么? 今天我们必须来看看 Java 虚拟机的垃圾回收算法是怎样的.不过在开始之前 ...

  6. 每日一问:你了解 Java 虚拟机结构么?

    对于从事 C/C++ 程序员开发的小伙伴来说,在内存管理领域非常头疼,因为他们总是需要对每一个 new 操作去写配对的 delete/free 代码.而对于我们 Android 乃至 Java 程序员 ...

  7. 每日一问:LayoutParams 你知道多少?

    前面的文章中着重讲解了 View 的测量流程.其中我提到了一句非常重要的话:View 的测量匡高是由父控件的 MeasureSpec 和 View 自身的 `LayoutParams 共同决定的.我们 ...

  8. 每日一问:简述 View 的绘制流程

    Android 开发中经常需要用一些自定义 View 去满足产品和设计的脑洞,所以 View 的绘制流程至关重要.网上目前有非常多这方面的资料,但最好的方式还是直接跟着源码进行解读,每日一问系列一直追 ...

  9. python每日一练:0007题

    第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. # -*- coding:utf-8 -*- import os def count ...

  10. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

随机推荐

  1. idea 从git上checkout项目下来,project没有文件目录结构

    1.去到 查看sdk有没有配置 查看该部分是否是空的,如果没有显示项目,添加导入项目

  2. SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式

    自定义主键生成策略 在entity类上添加注解 @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "custom ...

  3. 联想Y410P在Ubuntu系统下开关机及插耳机破音“啪啪”的解决办法

    转载自:https://blog.csdn.net/YiKangJ/article/details/81239556 1.解决开关机“啪啪响”: options snd-hda-intel model ...

  4. CCF-Crontab-201712-3

    大概是CCf第三题中最麻烦的一个吧 我的思路其实我觉得还可以,模拟...可是超时了233 只有90分 [ 可是我看网上其他人也是模拟算法啊, 速度还是太慢了 120行, 1个半小时  大部分花在了de ...

  5. 锋利的jQuery初学(4)

    css选择器与jQuery选择器 css选择器 符号 说明 用法 #id 选择器 #id{} .class 类选择器 .class{} Element 标签选择器 p{} , 并集选择器 div,p{ ...

  6. Charles 注册码/破解/激活

    Charles 注册码 软件去官网下载安装即可. 适用于Charles任意版本的注册码 Charles 4.2.7 目前是最新版,可用.   Registered Name: https://zhil ...

  7. python中的time模块和datetime模块

    >>> import time>>> time.time()1511330865.656656>>> time.localtime(time.ti ...

  8. git 之路

    1. 不要把配置文件放到你的 Git 代码仓库 https://www.oschina.net/translate/dont-include-configs-in-your-git-repos 2. ...

  9. Java技术学习之影响MySQL性能的配置参数

    本文将介绍MySQL参数的五大类设置,平时我们一般都很少碰它们,在进行MySQL性能调优和故障诊断时这些参数还是非常有用的. (一)连接连接通常来自Web服务器,下面列出了一些与连接有关的参数,以及该 ...

  10. chromedriver与chrome各版本的对应关系表

    driver的下载地址 http://chromedriver.storage.googleapis.com/index.html 对应关系也可以查看 google官方的说明,通过当前浏览器版本找到对 ...