问题:
     Python的函数定义中有两种特殊的情况,即出现*,**的形式。
     如:def myfun1(username, *keys)或def myfun2(username, **keys)等。

解释:
  * 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。

**用来处理传递任意个有名字的参数,这些参数用dict来访问。*

应用:
#########################

# “*” 的应用

#########################

>>> def fun1(*keys):
...     print "keys type=%s" % type(keys)
...     print "keys=%s" % str(keys)
...     for i in range(0, len(keys)):
...             print "keys[" + str(i) + "]=%s" % str(keys[i])
...
>>> fun1(2,3,4,5)
输出以下结果:

keys type=<type 'tuple'>
keys=(2, 3, 4, 5)
keys[0]=2
keys[1]=3
keys[2]=4
keys[3]=5

#########################

# “**” 的应用

#########################

>>> def fun2(**keys):
...     print "keys type=%s" % type(keys)
...     print "keys=%s" % str(keys)
...     print "name=%s" % str(keys['name'])
...
>>>
>>> fun2(name="vp", age=19)

输出以下结果:
keys type=<type 'dict'>
keys={'age': 19, 'name': 'vp'}
name=vp

来源:http://harmony.relax.blogbus.com/logs/12303417.html

转载于:https://www.cnblogs.com/walkerwang/archive/2012/02/26/2368980.html

python参数中的*和**相关推荐

  1. python函数中可变参数的传递方式是_Python中函数的参数传递与可变长参数

    1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0):2 printtext,num3 4 foo("asd") #asd 0 5 foo( ...

  2. 对Python参数类型详解以及学习中遇到的坑

    由于之前遇到过几次有关于参数类型的坑,以及经常容易把一些参数类型搞混淆,现在做一下有关参数类型的总结记录以及对之前踩坑经历的分析. 参数类型 首先我们列举一下有关于Python的参数类型,以及实际上的 ...

  3. Python函数参数中的冒号与箭头

    在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西? 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型.函数 ...

  4. python函数中把列表(list)当参数时的入坑与出坑

    在Python函数中,传递的参数如果默认有一个为 列表(list),那么就要注意了,此处有坑. 入坑 挖坑 def f(x,li=[]):for i in range(x):li.append(i*i ...

  5. python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?

    在python3.8之后函数参数中允许出现/和*号,/用来指明某些函数形参必须使用位置参数而非关键字参数的形式,*出现在函数参数中第一种含义可以表示为可变参数,一般写作*args:对于单独出现在参数中 ...

  6. 谈谈对python的理解_浅谈对python pandas中 inplace 参数的理解

    这篇文章主要介绍了对python pandas中 inplace 参数的理解,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 pandas 中 inplace 参数在很多函数中都会有, ...

  7. python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法

    一般情况下,在调用函数时,使用的是位置参数,即是按照参数的位置来传值:关键字参数是按照定义函数传入的参数名称来传值的.那么,关键字参数怎么使用? 工具/原料 python pycharm 截图工具 W ...

  8. python 函数中参数的传递方式(三分钟读懂)

    python 函数中参数的传递方式 第一种:指定默认值 def fn1(a = 1): # 函数中的(a)是形参 和外面的变量无关 (这里的是定义函数中指定默认值)print("fn1&qu ...

  9. [转载] 详细介绍Python函数中的默认参数

    参考链接: Python函数中的默认参数 详细介绍Python函数中的默认参数 import datetime as dt def log_time(message, time=None): if t ...

最新文章

  1. Android 6.0 运行时权限处理
  2. python 服务端渲染_客户端渲染和服务器渲染的区别
  3. mysql删除重复sql_mysql中删除完全重复数据的准确SQL语句
  4. 《李焕英》票房反超,全靠《唐探3》衬托?
  5. 简单代码大全_VBA爱好者请进:VBA代码宝概述
  6. Chrome 最小字体12px
  7. Android开发如何去除标题栏title(转)
  8. 十行代码--用python写一个USB病毒 (知乎 DeepWeaver)
  9. 脚本自动安装rkhunter检查rootkit
  10. python实现爬虫收集图片 花瓣网_Python爬虫日记七:批量抓取花瓣网高清美图并保存...
  11. 12/14 计算器雏形
  12. java qq验证_JAVA正则表达式校验qq号码的方法
  13. 移动端下拉刷新,兼容ios,Android及微信浏览器
  14. android 屏幕旋转
  15. ES8都有哪些新特性,你还在用ES6吗?
  16. STM8L的RAM与内存模型
  17. 【Python】递归实现n的全排列
  18. 设计师必收藏的5个配色网站
  19. WGS84经纬度坐标到北京54高斯投影坐标的转换
  20. MSN Messenger 7.0.0604

热门文章

  1. spring 控制hibernate的session何时关闭.
  2. 简单选择排序--转载
  3. spring boot:创建一个简单的web(maven web project)
  4. 58同城沈剑:好的架构是进化来的,不是设计来的
  5. mybatis多排序问题
  6. 配置ntp时间服务器
  7. Java三行代码搞定MD5加密
  8. 20170227玩呗娱乐
  9. Linux ARP代理 与 NAT
  10. LeetCode Combination Sum