2
class test(int):
def __init__(self, x, y=1):#y defaults to 1
self.x=x
self.y=y
def __new__(cls, x, y):
return int.__new__(cls, x+y)
test(2,3)#Is equal to 5
test(2)#Should equal 3 but __new__ (and other defs) ignore y=1.
我知道你可以用普通函數做到這一點,但它只是一個例子。然而,我需要從一個類繼承,我不喜歡使用*參數(除非你能說服我喜歡他們..)。那麼我怎麼能讓y默認爲某個值呢?具有默認參數的類繼承
您的意思是'def __new __(cls,x,y = 1):'? – kennytm 2010-01-27 05:57:35
這就是我的意思^ __ ^!我不敢相信我沒有想到這麼做......謝謝。 – what 2010-01-27 18:26:16
@KennyTM:你能否做出答案? – 2011-02-19 22:44:21