社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python函数参数匹配模型(上)

若数 • 6 年前 • 418 次点击  
阅读 14

Python函数参数匹配模型(上)

概述

Python3中函数参数一般都是通过赋值进行传递的,而调用者只需要知道如何正确的传递参数即可直接使用函数,

位置参数

即我们使用最频繁的参数传递方法,通过参数的默认位置从左到右进行匹配

def f(x, y, z):
    print(x, y, z)


f(1, 2, 3)
复制代码

示例结果:

1 2 3
复制代码

关键词参数

我们可以通过函数参数关键字进行参数传递,此时参数的传递是通过变量名匹配,而不是位置的方式匹配,所以在我们在使用混合的基于位置的参数和基于关键字的参数传递的原则就是,先基于位置的参数从左到右进行匹配,然后在基于变量名进行关键字的匹配。

def f(x, y, z):
    print(x, y, z)


# 关键字匹配
f(x=1, y=2, z=3)
# 无需位置的匹配
f(y=2, z=3, x=1)
# 位置与关键字的混合匹配
f(1, z=3, y=2)
复制代码

示例结果:

1 2 3
1 2 3
1 2 3
复制代码

默认参数

当我们在传递参数时,有些参数总是默认的时候,即如果没有传入值的话,在函数运行之前,这些参数就被赋予了默认值,这也是我们在函数定义时经常使用参数定义方式

def f(x, y=2, z=3):
    print(x, y, z)


# 仅传递非默认参数
f(1)
# 同样可以进行位置参数的传递
f(1, 2, 3)
# 传递关键字参数
f(1, y=4, z=5)
复制代码

示例结果:

1 2 3
1 2 3
1 4 5
复制代码
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34275
 
418 次点击