Python访问父类(不是继承)

2024-04-25 21:52:16 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以访问另一个类内部的类中的父方法/属性

class ClassA:
    a = 'a'

    class ClassB():
        def method(self):
            return self.a

instance = ClassA()
instance2 = instance.ClassB()
instance2.method()

Tags: 方法instanceselfreturn属性defmethodclass
1条回答
网友
1楼 · 发布于 2024-04-25 21:52:16

不,嵌套类不会自动生成实例之间的关系。您所做的只是在ClassA上创建了一个属性,它恰好是一个类对象。在实例上调用该属性只会找到class属性,并创建一个ClassB的新实例,而不知道或引用ClassA实例

您需要通过传入引用来明确此类关系:

class ClassB():
    def __init__(self, a):
        self.a = a

    def method(self):
        return self.a

class ClassA:
    a = 'a'

    def class_b_factory(self):
        return ClassB(self)


instance = ClassA()
instance2 = instance.class_b_factory()
instance2.method()

相关问题 更多 >