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.
Я знаю, что вы можете сделать это с помощью обычной функции, но это всего лишь пример. Однако мне нужно наследовать от класса, и я не люблю использовать * args (если вы не можете убедить меня в том, что они мне нравятся ..). Так как же я могу получить значение y по умолчанию для некоторого значения?