Python 可变参数

定义可变参数

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

def fn(*args):
    print args
#coding=gbk
def kebian(*arg):
	return arg

print(kebian(1))
print(kebian(‘Str‘))
print(kebian([1,2,3]))
print(kebian({‘right‘:1,‘left‘:2}))

  

可变参数的名字前面有个 号,我们可以传入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
时间: 2024-10-07 19:46:26

Python 可变参数的相关文章

python可变参数调用函数问题

一直使用python实现一些想法,最近在使用python的过程中出现这样一个需求,定义了一个函数,第一个是普通参数,第二个是默认参数,后面还有可变参数,在最初学习python的时候,都知道非关键字可变参数和关键字可变参数两种,调用的方式也非常多种多样,这里主要提出一个比较隐含的问题,并将各种可能出现的情况进行了探讨. 函数声明格式 python虽然不支持函数重载,但是通过对函数参数的众多特性的支持基本弥补了.函数声明的通式如下: def func(argv1,argv2...[,argv_d =

Python可变参数*和**

可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c--,请计算a2 + b2 + c2 + --. 要定义出这个函数,我们必须确定输入的参数.由于参数个数不确定,我们首先想到可以把a,b,c--作为一个list或tuple传进来,这样,函数可以定义如下: def calc(numbers): sum = 0 for n in numbers: sum = sum +

简明Python 可变参数

1 def total(a=5, *numbers, **phonebook): 2 print('a', a) 3 #遍历元组中的所有项目 4 for single_item in numbers: 5 print('single_item', single_item) 6 #遍历字典中的所有项目 7 for first_part, second_part in phonebook.items(): 8 print(first_part,second_part) 9 print(total(1

Python可变参数函数用法详解

来自:http://c.biancheng.net/view/2257.html 很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数.Python 当然也不例外,Python 允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入. 下面程序定义了一个形参个数可变的函数: # 定义了支持参数收集的函数 def test(a, *books) : print(books) # books被当成元组处理 for b in books :

more,sed,wc,python可变参数

more +x filename 用于查看filename从x行开始 sed -n '100,120p' filename 用于打印从100-120行 wc -l filename 统计行数 def func(*t) 元组 def func(**t) 字典 ref http://www.pythoner.com/4.html

python中的可变参数和不可变参数

知识点:Python中,万物皆对象. python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址. 一.可变对象和不可变对象 Python在heap中分配的对象分成两类:可变对象和不可变对象.所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变. 不可变(immutable):int.字符串(string).float.(数值型number).元组(tuple) 可变(mutable):字典型(dictionary).列表型(list) 不可变类型特点: 看下面的

Python定义可变参数与list切片

一:如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数: def fn(*args): print args Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args看成一个 tuple 就好了. 二:list切片 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: xingqi=["微信","支付宝","apple","华为","星期一&qu

2017寒假零基础学习Python系列之函数之 函数之定义可变参数

若想让函数接受任意个参数,就可以定义一个可变的参数: def fn(*args): print args fn() >>>() fn(1,2,5,6) >>>(1,2,5,6) 原理是Python解释器把传入的一组参数封装在一个tuple传递给可变参数,因此在函数内部,直接把变量args看成一个tuple就好了,目的是简化调用 小习题:假设我们要计算任意个数的平均值,就可以定义一个可变参数: def average(*args): ... 这样,在调用的时候,可以这样写

python中的可变参数

def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a=1, b='2', c=3) 输出结果如下:arg