2012-02-09 26 views
2

這應該是非常簡單的,但我沒能谷歌它:如何(如果有的話)我可以重載Python中的parantheses運算符?因此,此代碼將有意義:在Python中重載標準偏誤(「()」)

my_new_object = my_new_class() 
x = my_new_object(5) 
+4

沒有操作員「超載」。你想創建一個可調用的對象嗎? – 2012-02-09 12:50:00

回答

12

您需要在您的課程上定義__call__

例如

>>> class Multiplier(object): 
... def __init__(self, num): 
...  self.num = num 
... def __call__(self, other): 
...  return self.num*other 
... 
>>> mul5 = Multiplier(5) 
>>> mul5(6) 
30 
8

定義__call__()你的類:

class MyNewClass(object): 
    def __call__(self, x): 
     return x