1、*在函数调用中的作用

首先定义一个函数,并调用

deffun(a, b, c):printa, b, c

fun(1,2,3)

则该函数的输出为

1 2 3

传递3个参数调用该函数,则该函数会打印出这三个参数

接下来,创建一个3个元素的列表,并使用*进行调用

l = [1,2,3]

fun(*l)

则输出同样为

1 2 3

在这里*号的作用是,将l中的的值进行了unpack,并作为相应位置的参数传递进fun函数中。

如果使用如下代码:

l=[3,5,6,9]

fun(*l)

则会因为函数数量问题产生错误:

TypeError Traceback (most recent call last)

xxxxin ()

TypeError: fun() takes exactly3 arguments (4 given)

2、*args在函数调用中的作用

现在改变函数的定义,并进行调用

def fun(*args):printargs

fun(1)

则输出为

(1,)

或者使用任意多个参数进行调用,例如

fun(1,2,3)

这样的话,输出就是(1,2,3)

*args在函数定义中的作用是

接收所有形参后面的定位参数(positional arguments),并存储至一个元组中。所以args将会是一个元组。

如果将*args与形参进行混合,例如

def fun(a, *args):print "a is", aprint "args is", args

fun(1, 2, 3, 4)

则调用后的输出为

a is  1

args is  (2, 3, 4)

我们可以看到,a被第一个位置的参数赋值为1,args接收了包含所有其他参数的tuple。

python中args是什么意思_理解Python中的*,*args相关推荐

  1. python中args1是什么意思_理解Python中的*,*args

    1.*在函数调用中的作用 首先定义一个函数,并调用 deffun(a, b, c):printa, b, c fun(1,2,3) 则该函数的输出为 1 2 3 传递3个参数调用该函数,则该函数会打印 ...

  2. 什么是python语言的动态类型机制_理解Python的Dynamic typing

    Python的Dynamic typing有些类似于C语言的指针,在C中,一个变量可以指向任何地址空间,在Python中,一个变量也可以指向任何type的数据对象.变量的指向可以在程序运行过程中变化, ...

  3. python引用传递产生的问题_理解Python中传递值和引用时出现问题

    我可以看到三个基本的Python概念,它们可以为这个问题提供一些启示: 1)首先,来自可变对象的赋值,如self.foo = arg1 就像复制指针(而不是所指向的值):self.foo和{}是相同的 ...

  4. ios开发中计算代码运算时间_理解Unity中的优化(二):内存

    内存: 内存消耗是一个关键的性能指标,尤其是在内存资源有限的平台上,比如低端移动设备. 内存消耗分析: 在Unity中诊断内存问题,Unity介绍了一款开元的可视化内存分析工具--MemoryProf ...

  5. python的认识_理解 Python 中的 *args 和 **kwargs

    Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def test_defargs(one, two = 2): print 'Required argument: ', one ...

  6. python中的元类_理解python中的元类

    一,理解类也是对象 在python中类同样也是一种对象,只要使用关键字class,Python解释器在执行的时候就会创建一个对象,这个对象(类)自身拥有创建对象(类实例)的能力,这就是为什么他是一个类 ...

  7. python中元组_理解python中的元组

    理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...

  8. python怎么理解函数的参数_理解Python中函数的参数

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  9. python中raw是什么意思_对于Python中RawString的理解

    对于Python中RawString的理解 发布于 2016-01-11 06:56:27 | 100 次阅读 | 评论: 0 | 来源: PHPERZ Python编程语言Python 是一种面向对 ...

最新文章

  1. elasticdump安装_elasticsearch导出、导入工具-elasticdump
  2. SDRAM 相关资料
  3. python条件表达式有哪几个_python条件表达式:多项分支,双向分支
  4. python if main_python中if __name__ == '__main__' :main(()
  5. float数据在计算机内存中的存储方法
  6. python外星人入侵不显示子弹_【Python】python外星人入侵,武装飞船,代码写好后,不显示子弹...
  7. Qml学习笔记-Repeater的基本使用
  8. excel公式和函数
  9. java自己写的网络爬虫
  10. 如何用 Stata 做调节中介效应检验?
  11. 全息投影是计算机技术吗,3D全息投影技术怎么应用在展厅的?
  12. 【CSDN竞赛第五期】比赛小结
  13. 计算勒让德符号(legendre symbol)代码实现(含运行结果)
  14. 网络安全工程师从0单排日记---(0)
  15. Inventor怎么让零件透明(但是可见)附效果图
  16. 配置IIS服务器环境--win10
  17. 随身WIFI debian安装docker
  18. Win7 右下角出现 Test Mode
  19. 完美“登录”,从去掉“注册”开始
  20. 新手直播带货需要注意哪些问题呢?新手直播技巧必备:国仁楠哥

热门文章

  1. 34000+技术博主齐聚,一周发文近 20,000 篇,网友:啥活动?
  2. 13 岁自学编程,提出演进式架构的她,成 ThoughtWorks CTO!
  3. 程序员破解推荐系统瓶颈,带来超百亿收入增量!
  4. 切 5G 的蛋糕?先练好内功吧
  5. 当我们在谈论单测时我们在谈论什么
  6. Google 中国版搜索引擎项目凉了!
  7. 分布式存储绝不简单 —— UCan下午茶-武汉站纪实
  8. 阿里的程序员们如何解决复杂数据的查询优化问题?| 技术头条
  9. 工程师,你的钱究竟从哪来?
  10. TIOBE 年度榜单揭晓:C 语言夺冠,Python 紧随其后