在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