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中args1是什么意思_理解Python中的*,*args相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. python语言下划线怎么打_初学Python语言者必须理解的下划线

    下划线(_)在Python语言中有特殊作用. 在大多数编程语言中,下划线是命名变量或者函数名称时的连字符,但是,在Python语言中,不仅如此.如果你是一名Python程序员,对于诸如 _ in ra ...

  8. c++ 协程_理解Python协程(Coroutine)

    由于GIL的存在,导致Python多线程性能甚至比单线程更糟. GIL: 全局解释器锁(英语:Global Interpreter Lock,缩写GIL),是计算机程序设计语言解释器用于同步线程的一种 ...

  9. python 延时_理解Python多线程5:加锁解决问题,但又带来麻烦!

    此系列,已经推送的如下,还没看到的读者,可以走一波: 理解Python多线程4:代码稍作改动,bug就来了 理解Python多线程3:多线程抢夺同一个变量 理解Python多线程2:线程轮询得到CPU ...

最新文章

  1. 看BAT技术面试官如何挑选Java程序员
  2. Vue.JS项目中二级路由下刷新浏览器仍呈现当前路由的实现方案
  3. c语言中通过分隔符取字符串,C语言切割多层字符串(strtok_r strtok使用方法)
  4. 发票管理软件_企业为什么需要ERP企业管理软件?
  5. 线性代数应该这样讲(四)-奇异值分解与主成分分析
  6. 全网最细之接口的定义与实现
  7. css3 menu 手机菜单3
  8. 二进制方式搭建极简kubernetes1.10环境@centos7.3
  9. html无限弹窗关不掉,使用cmd命令时出现无限弹窗的故障如何终止
  10. 《深入解析windows操作系统第6版下册》第10章:内存管理(第三部分译文与图片)...
  11. kepware是什么软件_OPC服务器软件介绍
  12. win10电脑IIS服务器配置ASP环境
  13. 图片Exif信息解析(Java实现)
  14. tarjan算法与无向图的连通性(割点,桥,双连通分量,缩点)
  15. (难度:35%)untrusted游戏通关攻略
  16. RAID和LVM磁盘阵列技术
  17. 数据结构排序-7-3 点赞狂魔 (25 分)
  18. Python+Opencv实现图像匹配——模板匹配
  19. C++程序屏蔽windows2008系统安全界面(ctrl+alt+delete热键)
  20. 4、判断一个年份是否为闰年。(闰年即满足以下两条件的年份:其一:能被4整除但不能被100整除;其二:能被400带除)

热门文章

  1. Spring Cloud Spring Boot mybatis分布式微服务云架构(三)属性配置文件详解(1)
  2. C#语法之匿名函数和Lambda表达式
  3. Codeforces Round #353 (Div. 2)
  4. erlang: Programming Rules and Conventions。
  5. 周期串 字符串的最小正周期
  6. Android底层开发之旅—蓝牙系统分析
  7. c/c++/MFC 调用 js 函数代码
  8. linux编程技术进程代码,Linux进程通信—信号量 代码实现
  9. sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
  10. php exec 怎么确定执行成功_php执行系统外部命令的4种方法