函数学习002

‘’’
动态参数(是可以不传参数的)
args arguments的缩写 也叫不定长参数
参数加了一个
就好比脱了一个外套,但是呢,只能脱一层
举个栗子:
def addnumber(args):
print(args)这里在调用的时候会把传进去的参数打印出来
print(type(args))这里调用的时候会打印出参数的类型,是元组,tuple
for item in args:
print(item)如果调用函数的时候,args为一个列表,例如这样[1,2,3,4],前面加上一个
,就可以打印出1,2,3,4

‘’’

不多比比,写一个

def addnumber(*args):
print(type(args))
for item in args:
print(item,end="")

addnumber(*[1,2,3,4])#这是结果 1234

如果不加*的话

addnumber([1,2,3,4])# 这是结果[1, 2, 3, 4]
‘’’
关键字参数(也叫不定长参数,也就是说,是可以不传参数的,简直机智的一比)
**kwargs key word arguments
传递参数的时候,必须是key=value这种形式
所以嘞,返回的元素类型,肯定就是字典了
下面写一个错误的用法,注意 是错误的
def kw(**kwargs):
print(kwargs)
kw(2)#这样就会报错,因为这样是填写位置参数的方法
‘’’

那就再写一个

def ppp(**kwargs):
print(kwargs)

ppp(1)#TypeError: ppp() takes 0 positional arguments but 1 was given 如果这样传,就会报这样的错误

ppp(name=“xiaoli”)
ppp(**{“name”:“xiaoli”,“age”:18,“sex”:“female”})#如果前面没有那两个*,还是会报错
‘’’
关于参数的顺序:形参放在最前面,其余的随意,但是呢,建议用这样的顺序
形参、实参、动态参数、关键字参数
‘’’
‘’’
赋值的时候呢,是按照顺序赋值的,再举个栗子
def fun(a,b,c=4,*args,**kwargs):
print(a)
print(b)
print©
print(**args)
print(**kwargs)
这个时候,如果调用函数fun,赋值(1,2,3,4,5,6,7,8)
那么控制台输出的结果呢,就是这样的
1
2
3
(4,5,6,7,8)
{}
‘’’

猜你喜欢

转载自blog.csdn.net/minnersinger/article/details/88034384