Я хочу, чтобы у моих классов X
и Y
был метод f(x)
, который вызывает функцию func(x, y)
, так что X.f(x)
всегда вызывает func(x, 1)
, а Y.f(x)
всегда вызывает func(x, 2)
class X(object):
def f(self, x):
func(x, 1)
class Y(object):
def f(self, x):
func(x, 2)
Но я хочу поместить f
в общий базовый класс B
для X
и Y
. Как я могу передать это значение (1 или 2), когда я наследую X
и Y
от B
? Могу ли я иметь что-то вроде этого (C ++, как псевдокод):
class B(object)<y>: # y is sth like inheritance parameter
def f(self, x):
func(x, y)
class X(B<1>):
pass
class Y(B<2>):
pass
Какие приемы используются в Python для таких задач?