ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python函数四种参数类型的讲解

2021-09-27 02:31:06  阅读:240  来源: 互联网

标签:形参 python 关键字 location 讲解 实参 txt 四种 字典


 

"""
形参和实参:
形参:定义 函数时的 参数变量
实参:调用 函数时,使用的参数变量
参数传递的过程,就是 把实参的引用 传递给 形参 ,使用实参的值来执行函数体的过程。

在 Python 中,函数的实参/返回值都是是靠引用来传递来的
"""


def location(a=0, b=0):
    """
    按照参数位置,依次传递参数,这是最普通的方式
    """
    print(a + b)


location(3, 9)  # 位置实参,即调用函数时,按顺序传递参数,3 传给 a,9 传给 b;得到正确结果12
location(b=3, a=9)  # 关键字实参,即调用函数时,按关键字传递参数,3 传给 b,9 传给 a;一旦第一个实参使用了关键字实参,那么后面的实参都须使用关键字实参;得到正确结果12
location(*(3, 9))  # 元组封包实参,需要在实参前加一个*号,表示对元组拆包后,按位置传给形参;得到正确结果12
location(**{'a': 3, 'b': 9})  # 字典封包实参,需要在实参前加两个*号(拆包两次),表示对字典拆包后,按键值与形参名一一对应传给形参;得到正确结果12
location(*{'a': 3, 'b': 9})  # 字典封包实参,因为只使用了一个*号,只拆包了一次,得到'a'和‘b’,'a'+‘b’返回的结果是'ab'
# 以上采用了实参拆包传递给形参的方式


def person(userid, name, age, sex='男', *args, **kwargs):
    print(f'''
        身份证:{userid}
        姓名:{name}
        年纪:{age}
        性别:{sex}
        不定长参数信息:{args}
        字典参数信息:{kwargs}
    ''')


person('320102', '张三', 24, '男', 'txt1.txt', 'txt2.txt', 'txt3.txt', 班级='2101班', 爱好='唱歌')
'''
以上采用了封包接收实参的方式,实参被*args和**kwargs各自收入了元组和字典中
得到:
        身份证:320102
        姓名:张三
        年纪:24
        性别:男
        不定长参数信息:('txt1.txt', 'txt2.txt', 'txt3.txt')
        字典参数信息:{'班级': '2101班', '爱好': '唱歌'}
'''
# person('320102', '张三', 24, sex='男', 'txt1.txt', 'txt2.txt', 'txt3.txt', 班级='2101班', 爱好='唱歌') 这种调用出错,当有一个采用了关键字传实参时,其后面都必须得是关键字传实参数的方式,否则报错。

 

标签:形参,python,关键字,location,讲解,实参,txt,四种,字典
来源: https://www.cnblogs.com/bohua320/p/15341237.html

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

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

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

ICode9版权所有