解析python調用函數加括號和不加括號的區別

下面看下python調用函數加括號和不加括號的區別,具體代碼如下所示;

 def  bracket(data):
  
      return data
 
  if __name__ == '__main__':
  
      # 不帶括號調用的結果:<function bracket at 0x0000000004DD0B38>,a是整個函數體,是一個函數對象,不須等該函數執行完成
 
     a = bracket
 
     print a
 
     # 帶括號調用的結果:6 ,b是函數執行後返回的值6,須等該函數執行完成的結果
 
     b = bracket(6)
 
    print b

1、不帶括號時,調用的是這個函數本身 ,是整個函數體,是一個函數對象,不須等該函數執行完成。

2、帶括號(參數或者無參),調用的是函數的執行結果,須等該函數執行完成的結果。

簡單說就是:

如果使用括號,則隻調用if和函數。hello()調用函數;hello隻是一個綁定到函數的名稱,可以用來將函數對象作為參數傳遞給另一個函數。

def caller(f):
    f()

def hello():
    print("hi")

def goodbye():
    print("bye")

caller(hello)  # Prints "hi"
caller(goodbye)  # Prints "bye"

id返回不同的值,因為對id的每次調用都接收一個完全獨立的對象作為其參數。使用id(hello)id獲取函數對象本身。使用id(hello())id將獲得通過調用hello返回的對象;

到此這篇關於python調用函數加括號和不加括號的區別的文章就介紹到這瞭,更多相關python調用函數加括號和不加括號的區別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: