ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

函数的参数

2022-09-15 22:32:41  阅读:184  来源: 互联网

标签:info 函数 age lisi 参数 user name


1. 位置参数

  位置参数:调用函数时根据函数定义的参数位置来传递参数。

# 需求:函数3个参数name,age,gender
def user_num(name, age, gender):
    print(f'你的名字是{name}, 年龄是{age}, 性别是{gender}')

# 你的名字是lisi, 年龄是25, 性别是男
user_num('lisi', 25, '男')

  注意:传递和定义参数的顺序及个数必须一致。

2. 关键字参数

  函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易使用,同时也清楚了参数的顺序需求。

def user_info(name, age, id):
    print(f'你的姓名{name}, 年龄是{age}, 学号是{id}')

# 你的姓名lisi, 年龄是25, 学号是114
user_info('lisi', age=25, id=114)  # 位置参数必须写在关键字参数的前面
# 你的姓名小明, 年龄是23, 学号是258
user_info(name='小明', id=258, age=23)  # 关键字参数之间不分先后顺序

  注意:函数调用时,如果有位置参数时,位置参数必须在关键字参数前面,但关键字参数之间不存在先后顺序。

3. 缺省参数

  缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前面,包括函数定义和调用)。

def user_info(name, age, gender='男'):  # gender='男'就是缺省参数
    print(f'你的名字是{name}, 年龄是{age}, 性别是{gender}')

# 你的名字是lisi, 年龄是16, 性别是男
user_info('lisi', 16)
# 你的名字是lisan, 年龄是16, 性别是女
user_info('lisan', 16, '女')

  注意:函数调用时,如果为缺省参数传值则修改默认参数值;否则使用这个默认值。

4. 不定长参数

  不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。

  4.1 包裹位置传递

# 接受所有位置参数,返回一个元组
def user_info(*args):
    print(args)

# ('lisi',)
user_info('lisi')
# ('lisi', 20)
user_info('lisi', 20)
# ('lisi', 23, '男')
user_info('lisi', 23, '男')
# ()
user_info()

  注意:传递的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args时元组类型,这就时包裹位置参数。

  4.2 包裹关键字传递

# 收集所有关键字参数,返回一个字典
def user_info1(**kwargs):
    print(kwargs)

# {}
user_info1()
# {'name': 'lisi'}
user_info1(name='lisi')
# {'name': 'lisi', 'age': 20}
user_info1(name='lisi', age=20)

  注意:无论时包裹位置传递还是包裹关键字传递,都是一个组包的过程。

 

标签:info,函数,age,lisi,参数,user,name
来源: https://www.cnblogs.com/yz-b/p/16695012.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有