在哪种情况下,应在python中使用内置的“ operator”模块?

发布于 2021-01-29 15:07:30

我说的是这个模块:http :
//docs.python.org/library/operator.html

从文章:

运算符模块导出一组用C实现的与Python的固有运算符相对应的函数。例如,operator.add(x,y)等效于表达式x +
y。函数名称是用于特殊类方法的名称;为了方便起见,还提供了不带前导和尾随__的变体。

我不确定我是否了解此模块的好处或目的。

关注者
0
被浏览
79
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    可能最流行的用法是operator.itemgetter。给定一个lst元组列表,您可以按以下方式按ith元素排序:lst.sort(key=operator.itemgetter(i))

    当然,您可以通过定义自己的键功能来在没有操作员的情况下执行相同的操作,但是操作员模块使其变得更加整洁。

    至于其余部分,python允许使用一种编程的功能样式,因此它可以出现-例如,Greg的reduce示例。

    您可能会争辩:“为什么我operator.add什么时候能做到:add = lambda x, y: x+y?” 答案是:

    1. operator.add (我认为)稍微快一点。
    2. 它使您或以后的其他人更容易理解代码。他们不需要寻找add的定义,因为他们知道操作员模块的作用。
    3. operator.add是可腌制的,而lambda不是。这意味着该功能可以保存到磁盘或在进程之间传递。


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看