您的位置: 网站首页> python基础> 当前文章
Python函数默认参数,位置参数及关键字参数易错点
老董-我爱我家房产SEO2020-07-30194围观,149赞
调用函数,每次都传参很麻烦而且有些场景不适用,比如如果我们存储网站用户,有的用户没填写年龄,那么至少给个默认存吧,比如18岁。
所以,Python允许为参数设置默认值,定义函数时,直接给形式参数指定一个默认值,调用函数时没有给设定默认值的形参传参,则该参数直接使用默认值。
形参有默认值并不影响调用时给他传参,有传参则实际值为传参值。
def 函数名(...,形参名=默认值): 代码块
# -*- coding: utf-8 -*- # 为两个参数指定默认值 def age_info(name, age = 18,site="www.python66.com"): print('name',name) print("age",age) print('站点',site) age_info('小明') print('================') age_info('小明',site = '我爱www.python66.com')
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py name 小明 age 18 站点 www.python66.com ================ name 小明 age 18 站点 我爱www.python66.com Process finished with exit code 0
易错点:
关键字参数必须位于位置参数的后面,在定义函数时指定了默认值的参数(肯定是关键字参数)必须在没有默认值的参数之后。为了以防万一,可以传参时把参数名写出来。
此外,默认参数的值为可变数据类型时,要非常小心使用,相关错误可以查看函数之坑默认参数为可变类型。
错误1:定义函数发生错误
# -*- coding: utf-8 -*- def age_info(name, age = 18,site): print(123)
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py File "D:/pyscript/py3script/python66/python66.py", line 5 def age_info(name, age = 18,site): ^ SyntaxError: non-default argument follows default argument Process finished with exit code 1
错误2:调用传参错误
# -*- coding: utf-8 -*- def age_info(name, age = 18,site='www.python66.com'): print('name',name) print("age",age) print('站点',site) age_info(site = 11,19,age=21)
D:python3installpython.exe D:/pyscript/py3script/python66/python66.py File "D:/pyscript/py3script/python66/python66.py", line 10 age_info(site = 11,19,age=21) ^ SyntaxError: positional argument follows keyword argument Process finished with exit code 1
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
Python函数默认参数,位置参数及关键字参数易错点文章写得不错,值得赞赏
站点信息
- 网站程序:Laravel
- 客服微信:a772483200