Python关键字个数可变的位置传参与个数可变的关键字传参

简介: Python关键字个数可变的位置传参与个数可变的关键字传参

Python的三种可变参数

单个星号表示这个位置接收任意多个非关键字参数,并将其转换为元组
双星号代表这个位置接收任意多个关键字参数,并将其转换为字典

*arg的功能:接收N个位置参数,转换为元组形式

def add(*args):
    print(args)
add(1, 2, 3)
(1, 2, 3)

**args的功能:接收N个关键字参数,并将其转换为字典格式

def add2(**kwargs):
    print(kwargs)
    
add2(k1=1,k2=2,k3=3)
{'k1': 1, 'k2': 2, 'k3': 3}

注意事项:同时使用 args和 kwargs 时,必须 args参数列要在 kwargs前

单个星号:将单列表、元组等进行拆分,将其中的每个元素作为单个元素

lst = [1, 2, 3, 4]
print(*lst)
1 2 3 4

双星号:将字典进行拆分,将每个元素作为k=v的形式进行拆分
拆分前:

info = {'age': 21, 'sex': '男'}
def test(**kwargs):
    print(kwargs)
test(info=info)

拆分后

test(**info)
{'age': 21, 'sex': '男'}

**命名关键字参数
采用命名关键字参数可以限制函数传入的关键字参数**

错误用法

def get_info(name, age, *, sex):
    print(name, age, sex)
get_info('zss',21,'男')
TypeError: get_info() takes 2 positional arguments but 3 were given

正确用法

get_info('zss',21,sex='男')
zss 21 男
相关文章
|
5月前
|
Python
`try-except-finally`是Python异常处理的关键字,用于优雅地处理错误
【6月更文挑战第22天】`try-except-finally`是Python异常处理的关键字,用于优雅地处理错误。示例展示了函数`divide_numbers(a, b)`尝试执行`a/b`,若出现`ZeroDivisionError`,则捕获异常并打印错误信息,最后不论是否异常,都会显示"Division operation completed."。调用该函数分别展示正常除法和除零错误的处理情况。
57 2
|
2月前
|
Python
python方法,传参20220101 计算与当前时间差
python方法,传参20220101 计算与当前时间差
|
4月前
|
Python
|
3月前
|
SQL 分布式计算 算法
【python】python指南(十四):**操作符解包字典传参
【python】python指南(十四):**操作符解包字典传参
34 0
|
4月前
|
IDE 开发工具 Python
python语法错误关键字使用错误
【7月更文挑战第9天】
57 6
|
4月前
|
存储 大数据 Python
Python中的yield关键字是什么?
`yield`是Python的关键字,用于创建生成器,实现懒惰计算。生成器函数在遇到`yield`时暂停并返回值,状态得以保留,下次迭代时从中断点继续。生成器是迭代器的一种,常用于处理大数据集或无限序列,避免一次性加载所有数据。例如,`simple_generator`函数通过`yield`逐次返回1, 2, 3。生成器函数如`fibonacci_generator`可用于生成斐波那契数列,而生成器表达式则提供了一种简洁的生成值方式,如`(x**2 for x in range(1, 6))`生成平方数。`yield`还可用于创建无限序列、过滤值(如只生成偶数)和实现懒惰计算
|
4月前
|
SQL 数据库 开发者
【Python】已解决:pymssql._pymssql.OperationalError 关于关键字‘distinct’的语法错误
【Python】已解决:pymssql._pymssql.OperationalError 关于关键字‘distinct’的语法错误
53 1
|
5月前
|
开发者 Python
在Python中,异常处理通过`try`、`except`、`else`和`finally`关键字进行
【6月更文挑战第26天】在Python中,异常处理通过`try`、`except`、`else`和`finally`关键字进行。基本结构包括尝试执行可能抛出异常的代码,然后指定`except`来捕获特定或任何类型的异常。`else`块在`try`无异常时执行,`finally`块确保无论是否发生异常都会执行,例如用于清理。可以使用`raise`重新抛出异常,而自定义异常则允许创建特定的错误类。这种机制增强了代码的健壮性。
61 7
|
5月前
|
消息中间件 安全 开发者
Python global关键字分析
Python 是一种高级编程语言,拥有非常强大的功能和灵活性。在 Python 中,global 关键字可以用于在函数内部修改全局变量的值。本篇技术博客将介绍 global 关键字的使用方法和实现原理。
64 5