小编典典

python中有内置的标识函数吗?

python

我想指出一个什么都不做的函数:

def identity(*args)
    return args

我的用例是这样的

try:
    gettext.find(...)
    ...
    _ = gettext.gettext
else:
    _ = identity

当然,我可以使用identity上面定义的方法,但是内置方法肯定会运行得更快(并避免我自己引入的错误)​​。

显然,mapfilter使用None的身份,但这是具体到它们的实现。

>>> _=None
>>> _("hello")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

阅读 222

收藏
2020-12-20

共1个答案

小编典典

进行更多研究后,没有发现任何问题,在1673203版中提出了一项功能,而Raymond
Hettinger表示不会

最好让人们编写自己的琐碎通行证,并考虑签名和时间成本。

因此实际上是一个更好的方法(lambda避免为函数命名):

_ = lambda *args: args
  • 优点:可以使用任意数量的参数
  • 缺点:结果是参数的盒装版本

要么

_ = lambda x: x
  • 优点:不更改参数类型
  • 缺点:正好采用1个位置参数
2020-12-20