首页 > 解决方案 > Python - 覆盖继承的单例类方法

问题描述

我试图覆盖从单例类继承的方法,但它并没有像我预期的那样被覆盖。请帮我解决我在这里错过的问题!

class SuperParent():
    _instance = None


class SingletonParent(SuperParent):
    @staticmethod
    def get_instance():
        if SingletonParent._instance is None:
            SingletonParent()
        return SingletonParent._instance

    def __init__(self):
        if SingletonParent._instance is not None:
            raise RuntimeError('Use get_instance()')
        SingletonParent._instance = self

    def print_hi(self):
        print("Hi from SingletonParent")


class SingletonChild(SingletonParent):
    def print_hi(self):
        print("Hi from SingletonChild")

当我初始化 SingletonChild 并调用方法“print_hi”时,它从 SingletonParent 打印,而不是从 SingletonChild 中的覆盖方法打印。

singleton_child = SingletonChild.get_instance()
singleton_child.print_hi()

来自 SingletonParent 的您好

标签: pythoninheritancesingleton

解决方案


推荐阅读