Python定义可变参数

来源:互联网 发布:百度域名申请 编辑:程序博客网 时间:2024/05/22 15:04

摘自慕课网

如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数:

def fn(*args):    print args

可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数:

>>> fn()()>>> fn('a')('a',)>>> fn('a', 'b')('a', 'b')>>> fn('a', 'b', 'c')('a', 'b', 'c')

可变参数也不是很神秘,Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args看成一个 tuple 就好了。

定义可变参数的目的也是为了简化调用。假设我们要计算任意个数的平均值,就可以定义一个可变参数:

def average(*args):    ...

这样,在调用的时候,可以这样写:

>>> average()0>>> average(1, 2)1.5>>> average(1, 2, 2, 3, 4)2.4

Python函数还可以接受字典(dict)形式的可变参数:

def func(**args):
字典示例
def findad(username, **args):      '''''find address by dictionary'''      print 'Hello: ', username      for name, address in args.items():          print 'Contact %s at %s' % (name, address)  findad('wcdj', gerry='gerry@byteofpython.info', wcdj='wcdj@126.com', yj='yj@gmail.com')



原创粉丝点击