python return语句的概念

时间:2019-03-11 05:01:59

标签: python dictionary concept

我试图从字典中找到最高的三个值,并且应该返回该值的键 我遇到过这种方法

import heapq

def get_n_largest(n,dictionary):
    return heapq.nlargest(n,dictionary,dictionary.get)

从python文档中,我无法理解nlargest需要接受一个整数,一个可迭代的和一个键(如果提供)。

我不了解的是return语句中的dictionary.get()dictionary.get()之间有什么区别 当我尝试打印dictionary.get我的字典时,它会返回

  

“ dict对象位于0x0000020E77B12168的内置方法获取”

我进行了一些搜索,但是找不到有关它的概念。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

dictionary.get不会调用该函数,它只是对dictionary.get函数的引用。为了调用该函数,您需要执行dictionary.get(* args,** kwargs) 到目前为止-heapq.nlargest(n,dictionary,dictionary.get) 我没有看过heapq的文档。但是显然最大的可调用对象似乎是将可调用引用作为第三个参数。反过来,nlargest可能在逻辑中的某个地方调用了callable作为dictionary.get(* args,** kwargs)

答案 1 :(得分:1)

没有区别。在两种情况下,它都是完全相同的.get方法。在return语句中,它将应用于字典中的键(可迭代的元素),即。称为get(k)。在打印中不适用,即。用字典键调用并显示get值,该值是函数引用。