开发者社区> 问答> 正文

多个子类继承其父类的一个实例

假设我有以下示例:

import uuid

class A:
    def __init__(self):
        self.id = uuid.uuid4().hex

class B(A):
    def __init__(self):
        super().__init__()
        self.print_id()

    def print_id(self):
        print(self.id)

class C(A):
    def __init__(self):
        super().__init__()
        self.print_id()

    def print_id(self):
        print(self.id)

我们具有继承A的类B和C。实例化B或C后,它们将打印在超类中创建的唯一ID。我在这里遇到的问题是,每次实例化B或C时,都会为类A创建一个全新的ID。我想为类B和C打印/使用SAME ID。换句话说,我只希望有一个类A的实例可用于B和C。在不涉及围绕单例的任何逻辑的情况下,如何实现呢?C类如何知道B类已经初始化了A类,因此已经存在一个ID?我正在尝试创建仅初始化一次的基类,并且该ID由所有子类继承。在这里的任何帮助,将不胜感激。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-21 11:16:37 470 0
1 条回答
写回答
取消 提交回答
  • 您可以使用class属性

    例如

    class A:
        static_id = uuid.uuid4().hex
    
        def __init__(self):
            pass
    

    其余代码将相同。

    我更改了id成员的名称,因为它掩盖了内置函数的名称。

    (这种解决方案对我来说有点难以理解,因为我对您的问题还不够了解,无法提出更好的建议)。

    回答来源:stackoverflow

    2020-03-21 11:17:28
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载