首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lambda*args,**kwargs:无?

Lambda*args,**kwargs:无?

提问于 2018-02-11 15:35:49
回答 1关注 0查看 321

考虑:

代码语言:txt
AI代码解释
复制
blank_fn = lambda *args, **kwargs: None

def callback(x, y, z=''):
    print x, y, z

def perform_task(callback=blank_fn):
    print 'doing stuff'
    callback('x', 'y', z='z' )

这样做的动机是,我不需要在逻辑中检查回调是否已被分配,因为它默认为空。

有更好的方法吗?是否有内置的:

代码语言:txt
AI代码解释
复制
lambda *args, **kwargs: None

回答 1

tthha

回答已采纳

发布于 2018-02-12 00:51:13

代码语言:txt
AI代码解释
复制
def blank_fn(*args, **kwargs):
    pass

然而,我认为更多的方法是:

代码语言:txt
AI代码解释
复制
def perform_task(callback=None):
    print 'doing stuff'
    if callback is not None:
        callback('x', 'y', z='z')
代码语言:txt
AI代码解释
复制
def do_nothing(*args, **kwargs): pass
def do_something(arg, callback=do_nothing):
    a = 1 + 2
    callback('z', z='z')
def do_something_else(arg, callback=None):
    a = 1 + 2
    if callback is not None:
        callback('z', z='z')

%timeit do_something(3)
1000000 loops, best of 3: 644 ns per loop

%timeit do_something_else(3)
1000000 loops, best of 3: 292 ns per loop
和开发者交流更多问题细节吧,去 写回答
相关文章
python: *args & **kwargs
Python是支持 可变参数 的,实现手段之一就是使用 *args 和 **kwargs 语法。
JNingWei
2018/09/28
9830
*args和**kwargs
*args 和**kwargs常用于方法定义,*args 和**kwargs允许你传递可变数量的参数到函数里,可变数量在这里的意思是,你事先不知道有多少个参数可以传递给你的函数,所以在这种情况下,你使用这两个关键字。*args 用于传递一个non-keyword的参数list给函数,看示例
Helloted
2022/06/07
2770
什么是*args和**kwargs?
可以看到,这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )这样调用的话,会提示语法错误“SyntaxError: positional argument follows keyword argument”。
狼啸风云
2020/05/14
1.3K0
*args 和 **kwargs的用法
一 简介 *args 和 **kwargs 主要用于函数定义。 当我们需要定义的函数的传入参数个数不确定时,可以使用*args 和 **kwargs 代替不确定的参数个数。其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 我们可以写成*var和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。 二 使用 2.1 *args 当函数的参数个数不确定且不需要指定参数名称时,*args的格式是常规的参数 val1[,val2,val3....]
用户1278550
2018/08/09
4810
python *args,**kwargs参数
实际上,关键的是*和** 我们以三个例子来解释: 普通的使用参数: def test1(arg): print(arg) test1("a") 输出: a *是将剩下的参数用元祖表示 def test1(arg1,arg2,*args): print(arg1) print(arg2) print(args) test1(1,2,3,"a","b") 输出: 1 2 (3, 'a', 'b') **是将参数转换成字典进行表示 def test2(**kwargs):
西西嘛呦
2020/08/26
5060
Python中*args和**kwargs
在python开发的过程中,经常会遇到了*args和**kwargs这两个魔法变量,那么它们是什么呢?
SEian.G
2021/07/07
1.1K0
Python万能参数(*args, **kwargs)
Python内置一颗这样的语法糖,它允许函数声明时以(*args, **kwargs)声明它的参数,而(*args, **kwargs)可以接受任何类型的参数。
Steve Wang
2021/12/06
6380
Python 学习入门(17)—— args, kwargs
The special syntax, *args and **kwargs in function definitions is used to pass a variable number of arguments to a function. The single asterisk form (*args) is used to pass a non-keyworded, variable-length argument list, and the double asterisk form is used to pass a keyworded, variable-length argument list. Here is an example of how to use the non-keyworded form. This example passes one formal (positional) argument, and two more variable length arguments.
阳光岛主
2019/02/19
3810
Python 拓展之 *args & **kwargs
我们在前几天的文章中写的函数,它们的参数的个数都是确定的,我们知道世界是不确定的,那么函数的参数当然也有不固定的时候,那么当我们碰到这个问题的时候,该怎么解决呢?请看接下来的文章。
编程文青李狗蛋
2019/11/07
5090
Python参数详解:什么是*args和**kwargs?
一颗星号(*)已经两颗星号(**)都表示能够接收可变长度的参数。但是如何区别和理解这里的一颗星和两颗星呢?我们接下来通过例子详细介绍二者的联系和区别。
HuangWeiAI
2020/02/24
5250
解释*args和**kwargs的含义
当我们不知道向函数传递多少参数时,比如我们向传递一个列表或元组,我们就使用*args
狼啸风云
2020/01/13
5110
python中*args和**kwargs的区别
*args是函数使用者可以发送任意数量非键值对的参数传给这个函数,*args在接收参数后,将返回值以元组tuple的形式返回。
用户7886150
2020/12/19
4700
Python中 *args 和 **kwargs 的含义?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
7470
Python函数中的*、*args、**kwargs
当函数需要的参数数量不确定的时候,可以使用args 和 kwargs , 所有的位置参数保存在args中,以元组的形式保存,调用时直接用args,不需要带 * 所有的关键参数保存在kwargs中,以字典的形式保存,调用时也直接使用kwargs
神秘的寇先森
2020/02/19
9590
Python魔法变量*args 和 **kwargs
多个实参,放到一个元组里面,以*开头,可以传多个参数;**是形参中按照关键字传值把多余的传值以字典的方式呈现 *args 和**kwargs只是一个通俗的命名约定,只有变量前面的 *(星号)才是必须的,也可写成*var 和**vars。 *args 和 **kwargs 主要用于函数定义。 可以将不定数量的参数传递给一个函数。主:不定的意思是预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。 *args:(表示的就是将实参中按照位置传值,多出来的值都给args,且以元祖的方式呈现)
菲宇
2022/05/06
8690
[949]python不定长参数*args和**kwargs
在python语言写成的模块中的函数里,常常可以看到函数的参数表列里面有这两个参数,形如:
周小董
2021/03/08
3.6K1
Python中 *args 和 **kwargs 的含义?
答:在python中,*args和**kwargs通常使用在函数定义里。*args 和 **kwargs 都允许你给函数传不定数量的参数,即使在定义函数的时候不知道调用者会传递几个参数。ps: *args和**kwargs只是一个大家都遵守的习惯,名字可以任意写的 。
用户1564362
2019/11/12
1.2K0
Python可变传参: *args和**kwargs
args是参数的数组,kwargs就是当你传入key=value是存储的字典。 请看例子:
不吃西红柿
2022/07/29
3630
python之魔法变量*args 和 **kwargs
*args 和**kwargs只是一个通俗的命名约定,只有变量前面的 *(星号)才是必须的,也可写成*var 和**vars。
菲宇
2019/09/06
8950
点击加载更多

相似问题

在Python中如何理解kwargs?

2287

RESTAPI最佳实践:怎么查询字符串中的args与请求体中的args?

3374

阿萨德群无若群无若群无若群无若?

0143

阿萨德群无若群无若群无若群无若12?

0212

阿萨德群无若群无若群无若2群无若?

0242
相关问答用户
腾讯云TDP | TDP会员擅长3个领域
到家集团 | 技术VP擅长5个领域
腾讯云TDP | KOL擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文