python中函数传参的几种实现方式
目录
- 1.位置传参
- 2.关键字传参
- 3.默认传参
- 4.可变参数传参(*args,**kwargs)
- 总结
1.位置传参
实参与形参的位置数量一致
def foo(a,b): #形参 print(a) if __name__ == android'__main__': foo(1,2) #实http://www.devze.com参
2.关键字传参
关键字传参是指使用形参的名字来确定输入的参数。
通过该方式指定实参时,不需要与形参位置一致,只要参数名称写正确即可
def foo(a,b): print(f"a是{a},b是python{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 kwaandroidrgs.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)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论