【python】函数的参数(实参,形参,*args和**kwargs)

您所在的位置:网站首页 调用函数时形参和实参 【python】函数的参数(实参,形参,*args和**kwargs)

【python】函数的参数(实参,形参,*args和**kwargs)

2024-02-22 06:15| 来源: 网络整理| 查看: 265

一、实参和形参

实参: 函数执行的时候给函数传递的具体的值 形参: 在函数声明时编写的变量 函数执行时每个形参都要有值

# a,b为形参 def add(a, b): print(a + b) # 3,4为实参 add(3, 4) 二、实参 1.位置参数

按位置给形参传递数据

def add(a, b): print(a + b) # 3,4为位置参数 add(3, 4) 2.关键字参数

按形参的名字传递数据

def add(a, b, c): print(a + b - c) # 关键字参数 add(c=10, a=5, b=4) 3.混合参数

位置参数与关键字参数,混合使用 注意顺序: 先位置参数,后关键字参数

def add(a, b, c): print(a + b - c) add(10, c=5, b=4) 二、形参 1. 位置参数 def add(a, b, c): print(a + b - c) 2. 默认值参数

调用函数时默认值参数可以不给具体的值,直接使用默认值

# 调用函数时可以只给a,b传值,c默认为100 def add(a, b, c = 100): print(a + b - c) 3. 动态传参(*args和**kwargs)

*:接收任意个位置参数,自动打包成元组 **:接收任意个关键字参数,自动打包成字典 *args和**kwargs只是通常的命名习惯,也可以命名成其他的

3.1 * def chi(*food): print(food) chi("米饭", "苹果", "牛肉", "冰淇淋") # 打印结果为:('米饭', '苹果', '牛肉', '冰淇淋') 3.2. ** def chi(**food): print(food) chi(main_food="米饭", fruit="苹果", meat="牛肉") # 打印结果为: # {'main_food': '米饭', 'fruit': '苹果', 'meat': '牛肉'} 4. 形参的使用顺序(重要)

正确使用顺序:位置参数 > *args > 默认值参数 > **kwargs 例如:

def func(a, *args, b=10, **kwargs): print(a, args, b, kwargs) 三、可以接受任意参数的函数 # *args接受所有的位置参数,**kwargs接受所有的关键字参数 def func(*args, **kwargs): print(args) print(kwargs) func(5, "la", 7, a=1, b=2, c="ccc") """ 输出: (5, 'la', 7) {'a': 1, 'b': 2, 'c': 'ccc'} """ *和**的打散功能(重要):

在形参: 聚合,*把位置参数聚合成元组,**把关键字参数聚合成字典 在实参: 打散,*把可迭代对象转化成位置参数,**把字典转化成关键字参数

# 例如:列表的打散 def func(*args): print(args) lst = ["a", "b", "c"] # 一个个传递参数 func(lst[0], lst[1], lst[2]) # 打散直接传递 func(*lst) # 例如:字典的打散 def func(**kwargs): print(kwargs) dic = {"a": 1, "b": 2, "c": 3} # 一个个传递参数 func(a=dic["a"], b=dic["b"], c=dic["c"]) # 打散直接传递 func(**dic)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3