在Python 中,函數和方法被視為一等對象,這意味著它們可以像任何其他資料類型一樣對待。然而,第一類物件的一個獨特之處是能夠在沒有括號的情況下使用它們。
程式碼範例說明
提供的程式碼片段初始化 objectTest 的兩個實例類,a 和 b,具有相同的值。輸出顯示:
省略括號
省略括號省略括號
省略括號
>人們驚訝的結果是最後一個表達式,a.get_value == b.get_value。儘管 get_value 對於兩個物件來說是相同的方法,但其計算結果為 False。發生這種情況是因為沒有括號,我們不是在呼叫該方法,而是在存取函數物件本身。t = Process(target=my_long_running_function)
Python 允許省略括號,因為這提供了一種簡潔的方法來傳遞對可呼叫物件(函數或方法)本身的參考。這在以下幾種情況下特別有用:
使用回調:map(do_something, ['hey', 'what up', 'yo'])
回調是傳遞給另一個函數稍後執行的函數或方法。省略括號可以傳遞回呼引用,如多處理範例所示:
映射函數:str_ops = {'<': lt, '>': gt, '==': eq} op = str_ops.get(my_operator) if op: result = op(lhs, rhs)
以上是Python 函數和方法呼叫何時允許省略括號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!