【转载】 Python 方法参数 * 和 **
Python的函数定义中有两种特殊的情况,即出现*,**的形式。
如:def myfun1(username, *keys)或def myfun2(username, **keys)等。
他们与函数有关,在函数被调用时和函数声明时有着不同的行为。此处*号不代表C/C++的指针。
其中 * 表示的是元祖或是列表,而 ** 则表示字典
第一种方式:
import httplib
def check_web_server(host,port,path):
h = httplib.HTTPConnection(host,port)
h.request('GET',path)
resp = h.getresponse()
print 'HTTP Response'
print ' status =',resp.status
print ' reason =',resp.reason
print 'HTTP Headers:'
for hdr in resp.getheaders():
print ' %s : %s' % hdr if __name__ == '__main__':
http_info = {'host':'www.baidu.com','port':'','path':'/'}
check_web_server(**http_info)
第二种方式:
def check_web_server(**http_info):
args_key = {'host','port','path'}
args = {}
#此处进行参数的遍历
#在函数声明的时候使用这种方式有个不好的地方就是 不能进行 参数默认值
for key in args_key:
if key in http_info:
args[key] = http_info[key]
else:
args[key] = '' h = httplib.HTTPConnection(args['host'],args['port'])
h.request('GET',args['path'])
resp = h.getresponse()
print 'HTTP Response'
print ' status =',resp.status
print ' reason =',resp.reason
print 'HTTP Headers:'
for hdr in resp.getheaders():
print ' %s : %s' % hdr if __name__ == '__main__':
check_web_server(host= 'www.baidu.com' ,port = '',path = '/')
http_info = {'host':'www.baidu.com','port':'','path':'/'}
check_web_server(**http_info)
转载来自:http://my.oschina.net/u/1024349/blog/120298
【转载】 Python 方法参数 * 和 **的更多相关文章
- [转载]Python方法绑定——Unbound/Bound method object的一些梳理
本篇主要总结Python中绑定方法对象(Bound method object)和未绑定方法对象(Unboud method object)的区别和联系.主要目的是分清楚这两个极容易混淆的概念,顺便将 ...
- python方法参数:*和**操作符
* def test_args_kwargs(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", ar ...
- odoo14 button 事件调用python方法如何传递参数
1 <field name="user_ids" 2 mode="kanban" 3 nolabel="1" 4 options=&q ...
- [转载] Python数据类型知识点全解
[转载] Python数据类型知识点全解 1.字符串 字符串常用功能 name = 'derek' print(name.capitalize()) #首字母大写 Derek print(name.c ...
- Java可变参数 & Python可变参数 & Scala可变参数
Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...
- python函数参数的pack与unpack
python函数参数的pack与unpack 上周在使用django做开发的时候用到了mixin(关于mixin我还要写一个博客专门讨论一下,现在请参见这里),其中又涉及到了一个关于函数参数打包(pa ...
- Python中参数是传值,还是传引用?
在 C/C++ 中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码. 代码段1: def foo(arg): arg = 2 print(a ...
- 关于laravel5.5控制器方法参数依赖注入原理深度解析及问题修复
在laravel5.5中,可以根据控制器方法的参数类型,自动注入一个实例化对象,极大提升了编程的效率,但是相比较与Java的SpringMVC框架,功能还是有所欠缺,使用起来还是不太方便,主要体现在方 ...
- Python函数参数的五种类型
之前项目需求,需要通过反射获取函数的参数,python中可以通过函数签名(signature)来实现. 首先需要了解函数参数的类型,Python的参数类型一共有5种:POSITIONAL_OR_KEY ...
随机推荐
- centos mysql 大量数据导入时1153 错误:1153 - Got a packet bigger than 'max_allowed_packet' bytes
参考:http://stackoverflow.com/questions/93128/mysql-error-1153-got-a-packet-bigger-than-max-allowed-pa ...
- oracle数据库备份
--数据库备份--导出 exp userid=shoppingsys/shoppingsys@orcl file=/home/oracle/shoppingsys.dmp log=/home/orac ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- H-Index I & II
H-Index I Given an array of citations (each citation is a non-negative integer) of a researcher, wri ...
- http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/
http://www.htmleaf.com/ziliaoku/qianduanjiaocheng/ box-shadow : http://blog.csdn.net/freshlover/a ...
- XsltListViewWebPart 和自定义列表视图
http://msdn.microsoft.com/zh-cn/library/ff806162(v=office.14).aspx
- 自定义控件之带水印的Textbox
代码地址: http://download.csdn.net/detail/u010312811/9553195 Windows消息处理: http://www.cnblogs.com/imstriv ...
- Python中用format函数格式化字符串的用法
这篇文章主要介绍了Python中用format函数格式化字符串的用法,格式化字符串是Python学习当中的基础知识,本文主要针对Python2.7.x版本,需要的朋友可以参考下 自python2. ...
- 【leetcode】Reverse Linked List II (middle)
Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...
- 在微信浏览器中如何让他自动关闭当前页面回到会话框js
<script type="text/javascript"> wx.config(jssdkconfig); require(['jquery', 'util'], ...