在Python中的方法中使用括号和不使用括号有什么区别

在Python中的方法中使用括号和不使用括号有什么区别,python,parentheses,Python,Parentheses,以下两者之间的区别是什么 d=dict(a=1) 为什么第一个不能清除字典?使用括号调用函数,如果不使用括号,则会创建对该函数的引用 见下文: d.clear d.clear() >>def t(): ... 返回“嗨” ... >>>a=t >>>a >>>a=t() >>>a “嗨” >>> 这里有一个很好的链接可以进一步解释:(向下滚动到“定义函数”部分)。第一个链接实际上并没有调用函数。在Python中,可以使用函数作为值,因此可以将函数分配给新变量,如下所示: >&

以下两者之间的区别是什么

d=dict(a=1)

为什么第一个不能清除字典?

使用括号调用函数,如果不使用括号,则会创建对该函数的引用

见下文:

d.clear
d.clear()
>>def t():
...     返回“嗨”
...
>>>a=t
>>>a
>>>a=t()
>>>a
“嗨”
>>>

这里有一个很好的链接可以进一步解释:(向下滚动到“定义函数”部分)。

第一个链接实际上并没有调用函数。在Python中,可以使用函数作为值,因此可以将函数分配给新变量,如下所示:

>>> def t():
...     return "Hi"
...
>>> a = t
>>> a
<function t at 0x01BECA70>
>>> a = t()
>>> a
'Hi'
>>>
然后您可以稍后再调用它:

def timeTen(n):
    return n * 10

fn = timesTen
函数只是碰巧具有某个属性(您可以调用它们)的值。

使用
()
执行函数。如果不使用
()
,您将获得对函数的引用,您可以将其分配给变量,并在以后使用新名称执行

print(fn(5))   # 50
顺便说一句:在Ruby和Perl中,您可以调用不带括号的函数

new_d = d.clear # assign

new_d() # execute