当前位置:   article > 正文

python 函数多种参数传递方式_python 多参数

python 多参数

1. 简介

函数是组织好的,可重复使用的,用来实现特定功能的代码段。

# 定义函数
def add(x, y):
	result = x + y
	print("{} + {}的结果是:{}".format(x, y, result))

# 调用函数
add(1, 2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 函数定义中,提供的xy,称之为形式参数(形参)
  • 调用函数中,提供的12,称之为实际参数(实参)

2. 函数的多种传参方式

1. 位置参数

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

def my_fun(name, gender, age):
	print(f'我叫{name}, 性别{gender}, 今年{age}岁.')

# 位置参数
my_fun('猪小明', '男', 30)
  • 1
  • 2
  • 3
  • 4
  • 5

输出结果如下:

我叫猪小明, 性别男, 今年30岁.
  • 1

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

2. 关键字参数

定义:函数调用时通过"键=值"键值对的形式传递参数,可以让函数更加清晰、容易使用,同时也不用遵循形参的顺序。

def my_fun(name, gender, age):
	print(f'我叫{name}, 性别{gender}, 今年{age}岁.')

# 关键字传参
my_fun(name='猪小明', gender='男', age=30)
# 可以不按照形参的固定位置传参
my_fun(name='猪小明', age=30, gender='男')
# 可以和位置参数混用,但是位置参数必须在前面,且匹配参数的顺序
my_fun('猪小明', age=30, gender='男')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

输出结果如下:

我叫猪小明, 性别男, 今年30岁.
我叫猪小明, 性别男, 今年30岁.
我叫猪小明, 性别男, 今年30岁.
  • 1
  • 2
  • 3

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

3. 缺省参数

定义:缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可以不用传递该默认参数的值。当调用函数时没有传递参数,就会使用默认参数。

def my_fun(name, gender, age=20):
	print(f'我叫{name}, 性别{gender}, 今年{age}岁.')

# 使用缺省参数age,调用时不传此参数
my_fun(name='猪小明', gender='男')
# 修改缺省参数age的值
my_fun(name='猪小明', gender='男', age=30)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出结果如下:

我叫猪小明, 性别男, 今年20岁.
我叫猪小明, 性别男, 今年30岁.
  • 1
  • 2

注意:所有位置参数必须出现在默认参数前,包括函数定义和调用;函数调用时,如果为缺省参数传值则修改默认参数值,否则使用这个默认值。

4. 不定长参数

定义:不定长参数也叫作可变参数,用于不确定调用的时候会传递多少个参数的场景。不定长参数的类型分为两种,分别是位置传递和关键字传递

功能:当调用函数时,不确定参数个数时,可以使用不定长参数

4.1 位置传递

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

def my_fun(*args):
	print(args)

# 传入一个参数
my_fun('猪小明')
# 传入两个参数
my_fun('猪小明', '男')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出结果如下:

('猪小明',)
('猪小明', '男')
  • 1
  • 2

4.2 关键字传递

定义:参数是“键=值”键值对形式的情况下, 所有的键值对都会被kwargs接受, 同时会根据键值对组成字典。在函数中取值的时候可以根据key取出对应的值

def my_fun(**kwargs):
	print(kwargs)

# {'name': '猪小明', 'gender': '男', 'age': 30}
my_fun(name='猪小明', gender='男', age=30)
  • 1
  • 2
  • 3
  • 4
  • 5

输出结果如下:

{'name': '猪小明', 'gender': '男', 'age': 30}
  • 1
  • 位置不定长传递*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
  • 关键字不定长传递**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs
def printinfo(arg1, *args, **kwargs):
    print(arg1)
    print(args)
    print(kwargs)


printinfo(70, 60, 50)
# 70
# (60, 50)
# {}
printinfo(70, 60, 50, a=1, b=2)
# 70
# (60, 50)
# {'a': 1, 'b': 2}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/811510
推荐阅读
相关标签
  

闽ICP备14008679号