python - 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 的您好
解决方案
推荐阅读
- python - 不使用鼠标关闭 pygame
- c - 为什么我的数据没有完全添加到我的阵列中?
- ocaml - 在列表 ocaml 中插入元素
- excel - B行中每个单元格的三个条件格式规则-需要帮助复制整个表格
- c# - DbContext 实例同时在两个地方使用 - EF - Hangfire
- javascript - 如何在jquery中动态生成表达式?
- php - 我无法使用 curl 访问所需的网址
- c# - 我可以在 MVC 后端创建一个无状态的静态类吗
- quarkus - com.oracle.truffle.polyglot.PolyglotImpl(在未命名的模块中)无法访问类 org.graalvm.polyglot.impl.AbstractPolyglotImpl
- python - 将大炮正确地朝向玩家 Pygame 旋转仍然存在问题