python中args1是什么意思_理解Python中的*,*args
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相关推荐
- 什么是python语言的动态类型机制_理解Python的Dynamic typing
Python的Dynamic typing有些类似于C语言的指针,在C中,一个变量可以指向任何地址空间,在Python中,一个变量也可以指向任何type的数据对象.变量的指向可以在程序运行过程中变化, ...
- python引用传递产生的问题_理解Python中传递值和引用时出现问题
我可以看到三个基本的Python概念,它们可以为这个问题提供一些启示: 1)首先,来自可变对象的赋值,如self.foo = arg1 就像复制指针(而不是所指向的值):self.foo和{}是相同的 ...
- ios开发中计算代码运算时间_理解Unity中的优化(二):内存
内存: 内存消耗是一个关键的性能指标,尤其是在内存资源有限的平台上,比如低端移动设备. 内存消耗分析: 在Unity中诊断内存问题,Unity介绍了一款开元的可视化内存分析工具--MemoryProf ...
- python中元组_理解python中的元组
理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...
- python中的元类_理解python中的元类
一,理解类也是对象 在python中类同样也是一种对象,只要使用关键字class,Python解释器在执行的时候就会创建一个对象,这个对象(类)自身拥有创建对象(类实例)的能力,这就是为什么他是一个类 ...
- python中raw是什么意思_对于Python中RawString的理解
对于Python中RawString的理解 发布于 2016-01-11 06:56:27 | 100 次阅读 | 评论: 0 | 来源: PHPERZ Python编程语言Python 是一种面向对 ...
- python语言下划线怎么打_初学Python语言者必须理解的下划线
下划线(_)在Python语言中有特殊作用. 在大多数编程语言中,下划线是命名变量或者函数名称时的连字符,但是,在Python语言中,不仅如此.如果你是一名Python程序员,对于诸如 _ in ra ...
- c++ 协程_理解Python协程(Coroutine)
由于GIL的存在,导致Python多线程性能甚至比单线程更糟. GIL: 全局解释器锁(英语:Global Interpreter Lock,缩写GIL),是计算机程序设计语言解释器用于同步线程的一种 ...
- python 延时_理解Python多线程5:加锁解决问题,但又带来麻烦!
此系列,已经推送的如下,还没看到的读者,可以走一波: 理解Python多线程4:代码稍作改动,bug就来了 理解Python多线程3:多线程抢夺同一个变量 理解Python多线程2:线程轮询得到CPU ...
最新文章
- 看BAT技术面试官如何挑选Java程序员
- Vue.JS项目中二级路由下刷新浏览器仍呈现当前路由的实现方案
- c语言中通过分隔符取字符串,C语言切割多层字符串(strtok_r strtok使用方法)
- 发票管理软件_企业为什么需要ERP企业管理软件?
- 线性代数应该这样讲(四)-奇异值分解与主成分分析
- 全网最细之接口的定义与实现
- css3 menu 手机菜单3
- 二进制方式搭建极简kubernetes1.10环境@centos7.3
- html无限弹窗关不掉,使用cmd命令时出现无限弹窗的故障如何终止
- 《深入解析windows操作系统第6版下册》第10章:内存管理(第三部分译文与图片)...
- kepware是什么软件_OPC服务器软件介绍
- win10电脑IIS服务器配置ASP环境
- 图片Exif信息解析(Java实现)
- tarjan算法与无向图的连通性(割点,桥,双连通分量,缩点)
- (难度:35%)untrusted游戏通关攻略
- RAID和LVM磁盘阵列技术
- 数据结构排序-7-3 点赞狂魔 (25 分)
- Python+Opencv实现图像匹配——模板匹配
- C++程序屏蔽windows2008系统安全界面(ctrl+alt+delete热键)
- 4、判断一个年份是否为闰年。(闰年即满足以下两条件的年份:其一:能被4整除但不能被100整除;其二:能被400带除)
热门文章
- Spring Cloud Spring Boot mybatis分布式微服务云架构(三)属性配置文件详解(1)
- C#语法之匿名函数和Lambda表达式
- Codeforces Round #353 (Div. 2)
- erlang: Programming Rules and Conventions。
- 周期串 字符串的最小正周期
- Android底层开发之旅—蓝牙系统分析
- c/c++/MFC 调用 js 函数代码
- linux编程技术进程代码,Linux进程通信—信号量 代码实现
- sqlite3数据存储最多存储多少条数据?达到上限如何处理?_在数据爆炸的当下,教你设计一个能实现9个9数据可靠性的存储系统...
- php exec 怎么确定执行成功_php执行系统外部命令的4种方法