函数作用域&内置函数
一、不定长参数
1.*args:表示不定长位置参数,存储在一个元组中,*b在函数内打印b, b 是一个元组,接收了所有其他的位置参数 例子1:
def add(a, *b):#*b表示不定长位置参数,b是一个元组,接收了所有其他位置参数 print(f"a:{a}") print(f"b:{b}") add(2, 3, 4, 5)
例子2: def add(*args):#args是元组,sum(元组),可以把元组中的元素加起来 print(sum(args)) add(4, 5, 6, 7)
2.**kwargs表示不定长的关键字参数, 存储在一个字典当中 #c在函数内打印C会得到一个字典,接收所有的关键字参数,存放在字典中。 def add(a, *b, **c): print("a:", a)#a: 3 print("b:", b)#b: () print("c:", c)#c: {'x': 6, 'y': 10} add(3, x=6, y=10)
3.python 经常这么写: *args, **kwargs def add(a, *args, **kwargs): pass
4.函数定义的时候 def add(a, *b, **c): print("a", a) print("b", b) print("c", c) 5.在函数调用的时候,用*args和**kwargs first = (3, 4, 5) second = {"name": "yuz", "age": 1} 6.在函数定义时,在元组前面加一个*号,它会把元组拆开,小括号去掉,然后丢到一个函数里面。 7.在函数定义时,在字典前面加**,直接把字典转换成关键字形式,然后丢到函数里面。 8.调用时,*first会把元组外的小括号去掉,然后再把元组中的元素存储在元祖中。 9.调用时 **second会把字典的花括号去掉