我希望我的类 X 和 Y 有一个方法 f(x) 调用函数 func(x, y) 这样 X.f(x) 总是调用 func(x, 1) 而 Y.f(x) 总是调用 函数(x, 2)
class X(object):
def f(self, x):
func(x, 1)
class Y(object):
def f(self, x):
func(x, 2)
但我想将 f 放在 X 和 Y 的公共(public)基类 B 中。当我从 B 继承 X 和 Y 时,如何传递该值(1 或 2)?我能有这样的东西吗(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 中使用了哪些技术来完成此类任务?
请您参考如下方法:
Python 比您认为的更灵活。
我想你想要这样的东西:
class B(object):
def f(self,x):
func(x, self.param)
class X(B):
param=1
class Y(B):
param=2
注意
- 注意方法 f 以 self 作为 第一个参数。
- param= 行是类变量。
