首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python中的*args与*kwargs

2013-03-19 
Python中的*args与**kwargsPython中的*args与**kwargs和装饰器函数调用中的*args**kwargs对于函数签名:def

Python中的*args与**kwargs

Python中的*args与**kwargs和装饰器

函数调用中的*args**kwargs

对于函数签名:

def check_web_server(host,port,path):

一般的调用方法就是传递三个值到该方法中,如果有一个元组如:

host_info=('localhost',80,'/')`

此时就可以用*args的方式来调用,即:

check_web_server(*host_info)

如果有一个字典:

host_info={'host':'localhsot','port':80,'path:'/'},

就可以采用

chek_web_server(**host_info)

的方式来调用。

函数签名中的* 和 **

def f(arg,*kwargs)

又称为通用方法签名,他可以按照

f(),f(a,b,c),f(a,b,foo=c,bar=d)

的方式去调用。

装饰器

Python装饰器可以说是给函数包装一些额外的功能,这些额外的功能可以是日志,计时,过滤等等。被装饰的函数对象通常会被重新赋值给原来的名字。

语法:

@decodef foo():     pass

等价于

foo = deco(foo)`

例子:

def log(func):  def wrappedFunc():        print '*** %s is called'% func.__name__        return func()  return warppedFunc@logdef foo():   print 'inside foo()'

调用 foo()

热点排行