簡體   English   中英

Python訪問父類(不繼承)

[英]Python Accessing to the parent class (Not inheritance)

是否可以訪問另一個類內部的類中的父方法/屬性?

class ClassA:
    a = 'a'

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

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

不,嵌套類不會自動在實例之間產生關系。 您所做的就是在ClassA上創建一個碰巧是類對象的屬性。 在實例上調用該屬性只會找到類屬性,並且會在不了解或未引用ClassA實例的情況下創建ClassB的新實例。

您需要通過傳遞參考來使這種關系明確:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM