Python函数参数传参的种类,不同类型参数的区别及应用场景例举

本文详细介绍了Python函数参数的种类,包括必备参数、关键字参数、默认可省略参数、不定长元组参数(*args)和不定长字典参数(**kwargs)。通过示例代码展示了它们的使用方法、特点以及应用场景,帮助读者理解和掌握各种参数的差异。
摘要由CSDN通过智能技术生成

Python函数参数传参的种类

Python中函数参数定义及调用函数时传参大体可分必备参数、关键字参数、默认可省略参数、不定长元组参数、不定长关键字参数等,下面通过函数定义及调用上的不同情况深入解析这些中参数的不同及应用场景。

为了更好的理解不同参数的具体意义,所以下面演示代码中,使用的参数数量较多。具体是一个调用MySQL数据库配置参数的函数所需要的参数,我们用这个来演示不同类型的特点及适用方法,了解每种类型的应用场景及优缺点。

必备参数__仅赋值传参

必备参数,就是在调用函数的时候,定义的参数要全部都有赋值,否则执行的时候代码会报错。

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 演示获得数据库配置参数,使用必备参数
def demo_get_conf1(user, pw, host, port, db, charset):
    "打印得到的数据库配置"
    print('host: ', host)
    print('port: ', port)
    print('user: ', user)
    print('pw: ', pw)
    print('db: ', db)
    print('charset: ', charset)

demo_get_conf1('root', '1234', '127.0.0.1', '3306', 'tests', 'utf8')

上述代码中,调用demo_get_conf1函数的时候,定义的所有参数都必须传递,并且要按照规定的顺序传递,否则函数体内得到的也是错误的。以上代码控制台输出:

host:  127.0.0.1
port:  3306
user:  root
pw:  1234
db:  tests
charset:  utf8

这也是我们希望得到的正确结果。

下面我们把上述代码最后一行调用的前两个参数(“root"和"1234”)对调一下:

demo_get_conf1('1234', 'root', '127.0.0.1', '3306', 'tests', 'utf8')

执行后控制台输出:

host:  127.0.0.1
port:  3306
user:  1234
pw:  root
db:  tests
charset:  utf8

很显然,得到的 user 变成了 1234,pw 变成了 root,也就是说是完全按照位置来对应函数定义时的参数变量,所以传参的时候,顺序不能错,参数比较多的时候,就不容易记住顺序了。那么Python还给大家一种传递方式,同样是上面的函数,可以不用按顺序传参,请看下节“必备参数__键值对传参”。

必备参数__键值对传参(关键字参数)

同样是必备参数,但是在代用函数传参的时候,可以直接使用键值对的方式,看下面演示代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 演示获得数据库配置参数,使用必备参数
def demo_get_conf1(user, pw, host, port, db, charset):
    "打印得到的数据库配置"
    print('host: ', host)
    print('port: ', port)
    print('user: ', user)
    print('pw: ', pw)
    print('db: ', db)
    print('charset: ', charset)

demo_get_conf1(
    charset='utf8',
    pw='1234',
    user='root',
    host='127.0.0.1',
    port='3306',
    db='tests')

控制台输出:

host:  127.0.0.1
port:  3306
user:  root
pw:  1234
db:  tests
charset:  utf8

函数定义还是与上例一样,只是调用函数的时候,参数传递使用了键值对,键名就是参数定义时的变量名,这样就可以不用理会顺序,只要记住键名(参数变量名)就可以了。

但是这毕竟是必备参数,所有的参数都要传递,否则会报错,例如将调用修改成:

d
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值