python函数动态参数详解
Python的动态参数:
1,参数前一个“*”:在函数中会把传的参数转成一个元组。
def func (*args):
print(args) func(123,1,2,'a') result:(123, 1, 2, 'a')
2,“**args”的参数:函数中被转成一个字典。
如果这样传参的话会报错,因为没有指定key或value:
def func (**args):
print(args) func(123,1,2,'a') result:TypeError: func() takes 0 positional arguments but 4 were given def func (**args):
print(args) func (a=1,b=2) result:{'a': 1, 'b': 2}
3,混合动态参数的情况:
def func (*args,**kwargs):
print("%s----%s" %(args,kwargs)) func (1,2,a=1,b=2) Result:(1, 2)----{'b': 2, 'a': 1} 也是没问题的,需要注意的是必须*args在前**kwargs在后,参数也是一样。
4,变量当动态参数的情况:
这种情况如果我们直接把一个list传到前面,一个dict传到后面: def func (*args,**kwargs):
print("%s----%s" %(args,kwargs)) list=[1,2]
dic={'a':1,'b':2} func (list,dic) Result:([1, 2], {'b': 2, 'a': 1})----{} 后面的字典竟然是空的- -! So,我们需要叫函数知道那个变量是*args的参数,哪个是**args的参数,正确传参写法: func(*list,**dic Result:(1, 2)----{'a': 1, 'b': 2}
python函数动态参数详解的更多相关文章
- python 函数动态参数,名称空间,global,nonlocal
##################################总结######################################动态参数 *args:位置参数动态传参,接收到的是元 ...
- python 函数 动态参数 和嵌套
1.动态参数 是可以接收任意的参数.一种方式, 1,位置的动态传参, 写法是: *参数名 接收的参数是tuple类型举个例子:def yue(*food): print(food)yue(" ...
- python函数知识点(详解匿名函数)
Python函数是组织好的.单一的.具有独立功能模块的代码块. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定 ...
- python函数装饰器详解
python装饰器(fuctional decorators)简单来说就是修改其他函数的函数. 这样的函数需要满足两个个条件: 1.不能修改原函数的源代码 2.不能改变原函数的调用方式 需要达到的效果 ...
- main函数的参数详解
1.定义 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv.因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整 ...
- Oracle 时间,日期 类型函数及参数详解
ORACLE字符数字日期之间转化 Java代码 24 小时的形式显示出来要用 HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss' ...
- python datetime模块参数详解
Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime.time模块,它提供 的接口与C标准库time.h基本一致.相比于time模块,datetime模块的接 ...
- Python学习教程(learning Python)--2.3.3 Python函数型参详解
本节讨论Python下函数型参的预设值问题. Python在设计函数时,可以给型参预设缺省值,当用户调用函数时可以不输入实参.如果用户不想使用缺省预设值则需要给型参一一赋值,可以给某些型参赋值或不按型 ...
- PHP 时间函数 date 参数详解
time();表示的是从1970-01-01到现在共走了多少秒,不便于看,但便于计算 要找出前一天的时间就是 time()-60*60*24; 要找出前一年的时间就是 time()*60*60*24* ...
随机推荐
- viewgroup用addview添加的view不显示问题
先看代码: public class MyviewGroup extends ViewGroup { private final Context context; private View view; ...
- 用vs2013(cpu-only)调试caffe的mnist
在调试Mnist例子之前,首先需要用vs2013编译好caffe.详情请参见: [caffe-Windows]caffe+VS2013+Windows无GPU快速配置教程 按照上述教程编译好caffe ...
- openssl大纲
1.加密和SSL机制:http://www.cnblogs.com/f-ck-need-u/p/6089523.html 2.openssl命令总指挥:http://www.cnblogs.com/f ...
- 8.15 CSS知识点6
自定义动画 1.animation-name(动画名称) 元素所应用的动画名称,必须与规则@keyframes配合使用,因为动画名称由@keyframes定义. 语法: animation-name ...
- Go Data Structures: Interfaces
refer:http://research.swtch.com/interfaces Go Data Structures: Interfaces Posted on Tuesday, Decembe ...
- linux autoload service create
---恢复内容开始--- EXEC="php-fpm" stop(){ echo "Stoping $EXEC ..." ps aux | grep " ...
- windbg学习---.browse打开一个新的command 窗口
.browse r eax .browse <command>将会显示新的命令浏览窗口和运行给出的命令
- python-基础介绍
一.Linux基础 - 计算机以及日后我们开发的程序防止的服务器的简单操作 二.Python开发 http://www.cnblogs.com/wupeiqi/articles/5433893.htm ...
- Spring boot配置文件 application.properties
http://www.tuicool.com/articles/veUjQba 本文记录Spring Boot application.propertis配置文件的相关通用属性 # ========= ...
- <一>Angular.js学习
angular.module(name, [a], [b]); // angular.module()创建.获取.注册angular中的模块 name:字符串类型,代表模块的名称: a:字符串的数组 ...