簡體   English   中英

在Python中的方法中使用括號和不使用括號有什么區別

[英]What is the difference between using parenthesis and not using parenthesis in a method in Python

d=dict(a=1)

以下兩個之間有何區別?

d.clear
d.clear()

為什么第一個無法清除字典?

使用括號會調用該函數,而不使用括號會創建對該函數的引用。

見下文:

>>> def t():
...     return "Hi"
...
>>> a = t
>>> a
<function t at 0x01BECA70>
>>> a = t()
>>> a
'Hi'
>>>

這里是一個很好的鏈接,可以進一步進行解釋: http : //docs.python.org/2/tutorial/controlflow.html (向下滾動至“定義函數”部分)。

第一個實際上並不調用該函數。 在Python中,您可以將函數用作值,因此可以將函數分配給新變量,如下所示:

def timeTen(n):
    return n * 10

fn = timesTen

那么您以后可以調用它:

print(fn(5))   # 50

函數只是恰好具有某個屬性(可以調用它們)的值。

使用()執行函數。 不使用()您將獲得對函數的引用-可以將其分配給變量,然后使用新名稱執行。

new_d = d.clear # assign

new_d() # execute

順便說一句:在Ruby和Perl中,您可以不帶括號地調用函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM