解開函數和方法呼叫中括號省略的問題
在 Python 中,函數和方法被視為一等物件。這意味著它們可以被賦值給變量,作為參數傳遞給其他函數,甚至可以從函數返回。
但是,當我們呼叫函數或方法時,我們通常會在其名稱後面加上括號,例如 my_func ()。但是,在某些情況下省略括號可能會有所幫助。
考慮以下程式碼:
class objectTest(): def __init__(self, a): self.value = a def get_value(self): return self.value a = objectTest(1) b = objectTest(1) print(a == b) print(a.get_value() == b.get_value) print(a.get_value() == b.get_value()) print(a.get_value == b.get_value)
此程式碼的輸出為:
False False True False
這個令人費解的結果源自於這樣一個事實:get_value 是一個方法,但我們卻像變數一樣使用它,而沒有先呼叫它。這是可能的,因為省略函數或方法名稱周圍的括號會傳回函數或方法物件本身,稱為可呼叫物件。
可調用對像是一個對象,在新增括號時可以呼叫該對象來執行特定操作。在給定的範例中,a.get_value 引用表示物件 a 的 get_value 方法的可呼叫物件。
因此,將進行以下比較:
省略括號為我們在各種場景下提供了靈活性:
透過了解函數和方法呼叫中括號省略的行為,我們擴展了我們的Python 程式設計的可能性。
以上是Python 函數和方法呼叫中括號什麼時候很重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!