Python方法调用中的括号

时间:2013-01-03 05:09:31

标签: python python-3.x

这是一个简单的Python代码

for item in sorted(frequency, key=frequency.get, reverse=True)[:20]:
  print(item, frequency[item])

但是,如果拨打frequency.get()而不是frequency.get,则会向我显示错误"get expected at least 1 arguments, got 0"

我来自Ruby。在Ruby中getget()完全相同。它在Python中不一样吗?

例如,get()的描述为get,而不是get。什么是{{1}}?

1 个答案:

答案 0 :(得分:9)

frequency.get描述了方法本身,而frequency.get()实际上调用了方法(并且错误地给它没有参数)。你是对的,这与Ruby不同。

例如,考虑:

frequency = {"a": 1, "b": 2}
x = frequency.get("a")

在这种情况下,x等于1。但是,如果我们这样做了:

x = frequency.get

x现在将成为一个功能。例如:

print x("a")
# 1
print x("b")
# 2

此功能是您传递给sorted的。