Skip to main content
 首页 » 编程设计

python:类似于参数化继承

2025年05月04日14birdshome

我希望我的类 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= 行是类变量。