python可变长参数(非关键字及关键字参数)

可变长参数存在的意义是:每次调用一个函数处理不同量的参数输入。即,参数在调用之前输入的参数数量是未知的,或者多次调用该函数,每次的参数输入的量是不一致的;

可变长参数分为非关键字和关键字类型,分别对应元组和字典,如下定义一个类,功能是打印出输入的函数:

 1 >>> class Test:
 2     def keyword(self,a,b,*non_keyword,**keyword):
 3         print(‘a is ‘,a)
 4         print(‘b is ‘,b)
 5         print(‘non_keyword‘,non_keyword)
 6         for key in keyword:
 7             print("‘%s‘:%s" % (key,str(keyword[key])))
 8 >>> test = Test()
 9 >>> dis = test.keyword(‘a‘,‘b‘,(‘c‘,‘d‘),e=‘e‘,f=‘f‘)
10 a is  a
11 b is  b
12 non_keyword ((‘c‘, ‘d‘),)
13 ‘e‘:e
14 ‘f‘:f

以上的输入时一次输入的情形,当再次调用,输入不同的数量的参数时,依然可以打印出:

1 >>> test0 = Test()
2 >>> dis0 = test0.keyword(‘a‘,‘b‘,(‘c‘,‘d‘,‘c0‘,‘c1‘,‘d0‘,‘d1‘),e=‘e‘,f=‘f‘,g=‘g‘,h=‘h‘)
3 a is  a
4 b is  b
5 non_keyword ((‘c‘, ‘d‘, ‘c0‘, ‘c1‘, ‘d0‘, ‘d1‘),)
6 ‘h‘:h
7 ‘e‘:e
8 ‘f‘:f
9 ‘g‘:g

所以可变长参数输入具有一定的灵活性,更利用应对不同场景。

时间: 2024-11-17 05:57:44

python可变长参数(非关键字及关键字参数)的相关文章

Python——函数 8、可变长参数

可变长参数:可变长指的是实参的个数不固定按位置定义的可变长的实参:*按关键字定义的可变长的实参:** 一.按位置 def func(x,y,*args): print(x,y) print(args) func(1,2,3,4,5) # *处理按位置定义的多出的实参 # 然后赋值给*后的变量来保存成一个元组的形式 # args=(3,4,5) 1.等效 def func(x,y,*args): print(x,y) print(args) func(1,2,*(3,4,5)) #与func(1,

[C]va_list可变长参数的使用

一.概述 运用标准C的头文件stdarg.h提供的宏可以实现函数的自定义传参个数: 二.语法 1.va_list是一个可变长参数类型,在使用可变长参数的函数中可以定义1个或多个va_list类型参数,等待va_start初始化后使用: va_list parg_1; va_list parg_2; 2.va_start作用是给va_list类型变量绑定一个起始值 宏原型: void va_start(va_list ap, last); ap是va_list类型变量: last是函数的最后一个固

位置参数,默认参数,非关键字可变长参数,关键字可变长参数

def f(name, gender = 'male', *args, **kw): pass 位置参数:name 默认参数:gender 非关键字可变长参数:args 关键字参数:kw tips:四者的顺序必须是(位置参数)+(默认参数)+(非关键字可变长参数)+(关键字参数) 特殊情况: def f(name, gender = 'male', *args, **kw): print 'name: %s' % name print 'gender: %s' % gender if args

python中非关键字可变长参数和关键字变量参数的区别

#非关键字可变长参数 def add(*arg):    return type(arg) print add() #打印结果 <type 'tuple'> #关键字变量参数 def abd(**args):    return type(args) print abd() #打印结果 <type 'dict'> 由此,非关键字可变长参数是元组类型,关键字变量参数是字典类型

[python][oldboy]关键字参数和位置参数,默认参数,可变长参数(无名,有名)

关键字参数和位置参数是在函数调用的时候定义 关键字参数是以键-值对出现,无序,多一个不行,少一个不行 位置参数,有序,多一个不行,少一个不行 混搭:所有位置参数必须在关键字参数的左边 默认参数是在函数定义的定义,在函数调用的时候可以不用传改参数 可变长参数:*args, **kwargs 可变长参数和位置参数的混搭 1 def add(x,y): 2 return x + y 3 def add_1(x=0, y=1): 4 return x + y 5 6 def list_add(x, *a

Python中函数的参数传递与可变长参数

1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0): 2 print text,num 3 4 foo("asd") #asd 0 5 foo("def",100) #def 100 定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面. 调用时提供默认值参数值时,使用提供的值,否则使用默认值. 2.Python可以根据参数名传参数 1 def foo(ip,port): 2 print "%s:%d

ZMAN的学习笔记之Python篇:函数可变长参数

ZMAN的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 这次来聊聊Python中函数的“可变长参数”,在实际中经常会用到哦~  一.什么是“可变长参数” “可变长参数”就是向一个函数传入不定个数的参数.比如我写一个函数:传入一个学生参加各科目考试的成绩,求平均分,如两个学生分别传入(92, 91, 88)和(88, 95),因为每个学生参加的考试个数不同,因此传入的参数个数也就不同了,遇到这种情况,我们在定义函数的时候,可以使用“可变长参数”. 二.在定义函数时使用“可变长参数

Python函数的可变长参数

# 非关键字可变长参数(元组*args),把N个非关键字参数参数转化为元组.# 当函数被调用的时候,所有形参(必须的和默认的)都将赋值给函数声明中对应的局部变量,剩下的非关键字参数按顺序插入到一个元组中.# 可变长参数元组必须在位置参数和默认参数之后.def func(arg1, arg2 = 9, *args):    print("arg1: %d" % arg1)    print("arg2: %d" % arg2)    for i in args:   

Python函数中的可变长参数_速记

一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 二.可变长参数 1.一个星号:函数可以接收任意个数的参数,只需要在形参前面加一个*(星号),一个星号形参的函数会把多个位置参数值当成元祖的形式传入,也就是传入的多个参数值可以在函数内部进行元祖遍历 def length_param(a, *args): print("a=", a) pri