Python函数中的不定长参数相关知识总结


Posted in Python onJune 24, 2021

一、 不定长位置参数

# 在定义函数参数时,可以在形参的前面加*,该形参将获取所有的位置实参
# 它会将所有的实参保存在一个元组中
def fn(*args):
    print("args=", args)
    print("args type:", type(args))


# 带*形参和其他参数配合使用
def fn1(a, b, *args):
    print(a)
    print(b)
    print(args)


# 下面这两种写法可以,但是在传实参的时候要注意
def fn2(*args, a, b):
    print(a)
    print(b)
    print(args)


def fn3(a, *args, b):
    print(a)
    print(args)
    print(b)


if __name__ == "__main__":
    # 接收所有的位置参数
    fn(1, 2, 3, 4, 5)
    fn1(11, 12, 13, 14)
    # fn2(21, 22, 23, 24)  #这么传会报错
    fn2(21, 22, a=23, b=24)
    # fn3(21, 22, 23, 24)  #这么传会报错
    fn3(21, 22, 23, b=24)

fn运行 结果

Python函数中的不定长参数相关知识总结

fn1运行结果

Python函数中的不定长参数相关知识总结

fn2运行结果

Python函数中的不定长参数相关知识总结

fn3运行结果

Python函数中的不定长参数相关知识总结

总结:

1.带*的形参只能有一个,有多个会报错,不能识别

2.带*的形参可以和其他参数配合使用,比如和不带星的

3.带*的形参不一定要放在最后面,可以放在最前面,中间,最后。但是注意,带星的参数后的所有参数,必须以关键字参数的形式传递,否则会保错。

二、不定长关键字参数

# 带*的形参只能接收位置参数,关键字参数接收不能接收
# 如下会报错,fn传如下值是会报错的
def fn(*args):
    print("args=", args)
    print("args type:", type(args))

if __name__ == "__main__":
    # 这样传会保存,args不能接收关键字参数
    fn(1, 2, 3, 4, a=10)

运行如下:

Python函数中的不定长参数相关知识总结

# **形参能接收关键字参数
# 它将接收的所有关键字参数统一保存在一个字典中
def fn4(**kwargs):
    print("kwargs = ", kwargs)
    print(type(kwargs))

if __name__ == "__main__":
    fn4(a=1, b=2, c=3)

运行结果:

Python函数中的不定长参数相关知识总结

总结:

1.**形参只能有一个,并且必须写在所有参数的最后。

2.字典的key就是参数的名字,字典的value就是参数的值

到此这篇关于Python函数中的不定长参数相关知识总结的文章就介绍到这了,更多相关Python不定长参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python装饰器初探(推荐)
Jul 21 Python
python实现TF-IDF算法解析
Jan 02 Python
Python3.5 创建文件的简单实例
Apr 26 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
pandas DataFrame索引行列的实现
Jun 04 Python
python实现淘宝购物系统
Oct 25 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
python 实现PIL模块在图片画线写字
May 16 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
python Xpath语法的使用
Nov 26 Python
十个Python自动化常用操作,即拿即用
May 10 Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
Django Paginator分页器的使用示例
python随机打印成绩排名表
You might like
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
PHP经典的给图片加水印程序
2006/12/06 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
[01:28]国服启动器接入蒸汽平台操作流程视频
2021/03/11 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
pandas数据拼接的实现示例
2020/04/16 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
python 进程池pool使用详解
2020/10/15 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
施工资料员的岗位职责
2013/12/22 职场文书
工程承包协议书范本
2014/09/29 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
父亲节感言
2015/08/03 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android