python不定长参数与函数拆包

简介: python不定长参数与函数拆包

不定长参数

*args参数

  • *args形参只能接受位置参数,不能接受关键字参数。它会将所有接收的参数保存在一个元组中。
def fun1(*args):
    print(args)
fun1(1,2,3)

结果:
在这里插入图片描述

**kwargs参数

  • **kwargs形参可以接收其它关键字参数,且必须写在所有参数最后边。会将接收的参数统一保存到一个字典中。
def fun2(**kwargs):
    print(kwargs)


fun2(a=1, b=2, c=3) 

结果:
在这里插入图片描述
且这里传入的a,b,c变量是无法直接打印出来的。a,b,c被存入字典后即被删除。

*args&**kwargs混合

**形参只有一个,并且必须写在所有参数后面。

def fun3(*args, **kwargs):
    print(args)
    print(kwargs)


fun3(1, 2, 3, a=1, b=2, c=3)
def fun3(x, *args, y, **kwargs):
    print(x)
    print(y)
    print(args)
    print(kwargs)


fun3(1, 2, 3, 4, y=5, a=1, b=2, c=3)

结果:
在这里插入图片描述

函数拆包

传参时,在序列类型的参数前加星号*,以实现自动传递。

def fun(a, b, c):
    print(a)
    print(b)
    print(c)


tuple1 = (1, 2, 3)
dict1 = {
    'a': 3, 'b': 2, 'c': 1}
fun(*tuple1)
fun(**dict1)

结果:
在这里插入图片描述

目录
相关文章
|
2天前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
153 99
|
2天前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
136 98
|
6天前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
25天前
|
Python
Python 函数定义
Python 函数定义
86 1
|
1月前
|
数据处理 开发工具 开发者
requirement.txt 管理python包依赖
在 Python 项目中,`requirements.txt` 用于记录依赖库及其版本,便于环境复现。本文介绍了多种生成该文件的方法:基础方法使用 `pip freeze`,进阶方法使用 `pipreqs`,专业方法使用 `poetry` 或 `pipenv`,以及手动维护方式。每种方法适用不同场景,涵盖从简单导出到复杂依赖管理,并提供常见问题的解决方案,帮助开发者高效生成精准的依赖列表,确保项目环境一致性。
304 4
|
14天前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
72 0
|
27天前
|
数据挖掘 数据处理 C++
Python Lambda:从入门到实战的轻量级函数指南
本文通过10个典型场景,详解Python中Lambda匿名函数的用法。Lambda适用于数据处理、排序、条件筛选、事件绑定等简洁逻辑,能提升代码简洁性和开发效率。同时提醒避免在复杂逻辑中过度使用。掌握Lambda,助你写出更高效的Python代码。
105 0
|
6天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
179 102
|
6天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
171 104
|
6天前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
167 103

推荐镜像

更多