赞
踩
1.位置传参
实参与形参的位置数量一致
- def foo(a,b): #形参
- print(a)
-
- if __name__ == '__main__':
- foo(1,2) #实参
-
2.关键字传参
关键字传参是指使用形参的名字来确定输入的参数。通过该方式指定实参时,不需要与形参位置一致,只要参数名称写正确即可
- def foo(a,b):
- print(f"a是{a},b是{b}")
-
- if __name__ == '__main__':
- foo(b=1,a=2)
-
-
-
- #结果
- a是2,b是1
3.默认传参
调用函数时,如果没有指定某个参数将抛出异常,即在定义函数时,直接指定形式参数的默认值。这样,当没有传入参数时,则直接使用定义函数时设置的默认值。语法格式如下:
- def foo(a,b,c="我是默认参数"):
- print(f"a是:{a},b是:{b},c是:{c}")
-
- if __name__ == '__main__':
- foo(b=1,a=2)
4.可变参数传参(*args,**kwargs)--也可以叫不定长参数
1.*args可以接收任意长度的位置参数
2.**kwargs可以接收任意长度的关键字参数
3.*args和**kwargs同事使用时,*args(位置参数)在前,**kwargs(关键字)参数在后。
一、形参为可变参数
- def foo(*args, **kwargs):
- print("Positional arguments:")
- print(type(args))
-
- for arg in args:
- print(arg)
-
- print("\nKeyword arguments:")
- print(type(kwargs))
- for key, value in kwargs.items():
- print(key + ": " + str(value))
-
-
- if __name__ == '__main__':
- a = foo(1,2,3,4,5,name = "tom",age = 18)
- help(foo())
二、实参为可变参数
- def foo(a,b,name,age):
-
- print(a,b,name,age)
-
- if __name__ == '__main__':
- a = [1,2]
- b = {"name":"tom","age":18}
- c = foo(*a,**b)
-
-
- #结果
- 1 2 tom 18
三、实参和形参都为可变参数
- def foo(*args, **kwargs):
- print("Positional arguments:")
- print(type(args))
-
- for arg in args:
- print(arg)
-
- print("\nKeyword arguments:")
- print(type(kwargs))
- for key, value in kwargs.items():
- print(key + ": " + str(value))
-
-
- if __name__ == '__main__':
- a = [1,2,3,4,5]
- b = {"name":"tom","age":18}
- a = foo(*a,**b)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。