python:函数传参(实参与形参

python:函数传参(实参与形参)

一、函数的参数

在函数定义与调用时,我们可以根据自己的需求来实现参数的传递。在python中,函数的参数一共有两种形式:①形参 ② 实参

形参:在函数定义时,所编写的函数参数就是形式参数(形参)

实参:在调用函数时,所传递的函数参数就是实际参数(实参)

def func1(num):  # 函数定义 num是一个形参
    d_num = num * 2
    return d_num

func1(10) # 函数调用 10是一个实参
  • num只有在函数定义时才声明的变量,是局部变量,而 num = 10 代表实参, 是全局变量。

二、函数的参数类型(调用)

1、位置参数

理论上,在函数定义时,我们可以为其定义多个参数。在调用函数时,我们也应该传递多个参数,正常情况参数位置要一一对应

def func(name, age, mobile):
    print(f'姓名:{name},年龄:{age},手机号码:{mobile}')


# 位置传参时,注意要一一对应传递参数
func('Tom', 23, 1234)

注意事项:位置参数强调的参数传递的位置要一一对应,顺序不能颠倒。

2、关键词参数(python特有)

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

def func(name, age, mobile):
    print(f'姓名:{name},年龄:{age},手机号码:{mobile}')


# 关键词传参
func(age=23, name='Jack', mobile=10086)

三、函数的缺省参数(默认值参数)

在函数定义时,我们可以给定函数的某个参数一个默认值def func(name, age, sex = '男'),在函数调用传参时,可以不传入实参,使用默认值,如果想修改也可以传入实参。

def func(name, age, sex = '男'):
    print(f'姓名:{name},年龄:{age},性别:{sex}')

func(name = 'Tom', age = 19) # 默认参数sex = '男'

func(name = 'Harry', age = 20, sex = '女') # 修改参数 sex = '女'
  • 注意,在定义函数时, 默认值参数一定要放在普通参数后面

image-20230912113949680

四、不定长参数

不定长参数也称为可变参数,用于不确定调用函数的时候传递多少个参数的情景。

此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递。

*args:不定长位置参数(不定长元组参数),*args代表固定方式,args代表变量名称,主要用于接收不定长位置参数

**kargs:不定长关键词参数(不定长字典参数),**kwargs代表固定方式,kwargs代表变量名称,主要用来接收不定长关键词参数
# 不定长位置参数(不定长元组参数)

def func1(*args):
    print(args)


func1()
func1(1)
func1(1, 2)
func1(1, 2, 3)

image-20230912154510045

# 不定长关键词参数(不定长字典参数)

def func2(**kwargs):
    print(kwargs)


func2()
func2(a=1)
func2(a=1, b=2)

image-20230912154552304

案例:*args**kwargs的结合使用

  • 在定义函数与传参时,*args放在左边,**kwargs放在右边
def func1(*args, **kwargs):
    print(args)
    print(kwargs)


func1(1, 2, 3, a=4, b=5) # 1,2,3被args接收,4,5被kwargs接收

image-20230912163511086

  1. *args还可以专门用来接收列表类型或元组类型的数据
  2. **kwargs还可以用来接收字典类型的数据

调用时:func1(*list1, **dict1)

list1 = [1, 2, 3]
dict1 = {'a': 4, 'b': 5}


def func(*args, **kwargs):
    sum1 = 0
    for i in list1:
        sum1 += i
    for i in kwargs.values():
        sum1 += i
    return sum1


print(func(*list1, **dict1))  # 在传参的时候*别忘

五、参数混用情况

在python中有三种参数:
1、普通参数(位置参数,关键词参数) def func(name, age, mobile)
2、缺省参数(默认值参数) def func(name, age, sex = '男')
3、不定长参数 def func2(**kwargs)

以上三种参数可以混合使用,但是特别注意,顺序很重要:

def func(① 普通参数 ② *args ③ 缺省参数 ④ **kwargs):
    pass
  • 在传参时,普通参数一定要传参(不管是用位置传参还是关键词传参)
posted @   七落安歌  阅读(1479)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示