Skip to main content
 首页 » 编程设计

python之将父类的自身更改为子类

2025年05月04日12hnrainll

我有这样的结构,

class Foo(object): 
    def __init__(self, value=True): 
        if value: 
            Bar() 
        else: 
            Zoo() 
    pass 
 
class Bar(Foo): 
    pass 
 
class Zoo(Foo): 
    pass 
 
 
 
 
z = Foo(True)  # instance of Foo() class 

当我实例化类 Foo() 时,它将返回 Foo 类的实例,但我希望它应该返回 Bar 的实例> 或 Zoo 类(即根据提供给 Foo 类的值调用的任何类)

提前致谢

请您参考如下方法:

只需使用一个函数:

def foo(value=True): 
    if value: 
        return Bar() 
    else: 
        return Zoo() 

不需要类,因为您只想从两个其他 类创建实例。因此,您可以只使用一个函数在两者之间进行选择。

这通常被称为工厂。


如果你想为初始化器提供自定义参数,你可以使用这个:

def foo(value=True): 
    if value: 
        return Bar 
    else: 
        return Zoo 

并这样调用它:

z = foo(True)(params for Bar/Zoo)