d=dict(a=1)
以下两个有什么区别?
d.clear
d.clear()
为什么不能先清除字典?
答案 0 :(得分:4)
使用括号调用不使用它们的函数创建对该函数的引用。
见下文:
>>> def t():
... return "Hi"
...
>>> a = t
>>> a
<function t at 0x01BECA70>
>>> a = t()
>>> a
'Hi'
>>>
这是一个很好的链接,可以进一步解释:http://docs.python.org/2/tutorial/controlflow.html(向下滚动到&#34;定义函数&#34;部分)。
答案 1 :(得分:1)
第一个实际上并没有调用该函数。在Python中,您可以将函数用作值,因此您可以将函数分配给新变量,如下所示:
def timeTen(n):
return n * 10
fn = timesTen
然后你可以稍后再打电话:
print(fn(5)) # 50
函数只是恰好具有某个属性的值(可以调用它们)。
答案 2 :(得分:1)
使用()
执行功能。如果没有()
,您将获得对函数的引用 - 您可以将其分配给变量并稍后使用新名称执行。
new_d = d.clear # assign
new_d() # execute
Ruby和Perl中的 BTW:你可以在没有括号的情况下调用函数。