在调用函数时,通常会传递参数,函数内部的代码保持不变,针对不同的参数处理不同的数据

有位置传参、关键字传参、默认值参数、多值参数等。

1.参数传递

形参和实参:

  • 形参定义 函数时的 参数变量
  • 实参调用 函数时,使用的参数变量

参数传递的过程,就是 把实参的引用传递给形参 ,使用实参的值来执行函数体的过程。

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

def f(a,b,c=10):
  return a+b+c
   
print(f(3,2))#3+2+10=15
print(f(3,2,1))#3+2+1=6
#在定义函数的时候,使用形如c=10的方式,可以给参数赋予默认值(default)。如果该参数最终没有被传递值,将使用该默认值。

运行结果:

 2.位置实参

按照参数位置,依次传递参数,这是最普通的方式。

def location(a, b):
    print(a + b)

location(3,9)
location(10,5)
"调用函数时,按顺序传递参数,3 传给 a,9 传给 b"

 3.关键字实参

如果不想严格按照顺序传递参数,也可以按关键字传递。

def location(a, b)
    print(a + b)

location(b = 3, a = 9)
"调用函数时,按关键字传递参数,3 传给 b,9 传给 a"

4.缺省参数

定义函数时,可以给 某个参数 赋值一个默认值,具有默认值的参数就叫做 缺省参数

调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用 参数默认值

将常见的值设置为参数的缺省值,从而 简化函数的调用

要使用最常见的值作为默认值

如果一个参数的值 不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递!

缺省参数的定义位置:

必须保证带有默认值的缺省参数在参数列表末尾!

调用带有多个缺省参数的函数:

在 调用函数时,如果有 多个缺省参数需要指定参数名,这样解释器才能够知道参数的对应关系!

def print_info(name, title="", gender=True):
    gender_text = "男生"

    if not gender:
        gender_text = "女生"

    print("%s%s 是 %s" % (title, name, gender_text))


# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王", title="班长")
print_info("小美", gender=False)

 5.多值参数

当函数需要处理的参数个数不确定时,可使用 多值参数。

python 中有两种多值参数:

接收元组:参数名前加 一个 *

接收字典:参数名前加 两个 *

一般在给多值参数命名时,习惯使用以下两个名字

*args — 存放元组参数

**kwargs — 存放字典参数,(kw即keyword,kwargs即键值对参数)

def demo(num, *args, **kwargs):

    print(num)
    print(args)
    print(kwargs)

demo(1, 2, 3, 4, 5, name="小明", age=18, gender=True)

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐