如何在Python的嵌套类中访问函数变量

问题描述 投票:0回答:1

我试图直接从类(子类)中调用类中的函数。我可以做的很好,但是我无法访问该函数中的变量,因此正在寻求帮助。一个简单的示例代码如下:

#!/usr/bin/env python3

class One():
    def __init__(self):
        self.apple = "Apple"
        self.classTwo = Two()

class Two():
    def __init__(self):
        self.banana = "Banana"

    def myFunc(self):
        print("I am inside the myFunc function of class Two")
        self.chocolate = "Chocolate"

if __name__ == "__main__":
    classOne = One()                    # Instantiate class One
    print(classOne.apple)               # Access variable apple in class One
    print(classOne.classTwo.banana)     # Access variable banana in class Two from within class One
    print(classOne.classTwo.myFunc())   # Call the myFunc function, which prints to stdout
    print(classOne.classTwo.myFunc().chocolate) # How do I access the self.chocolate variable?

最后一条打印语句将引发错误。我认为这是一个可变范围的问题,但想访问self.chocolate,但不确定如何。

python oop scope subclass
1个回答
0
投票

当您调用类对象时,所有类属性均由类的自身表示。在您的情况下,当您启动One()时,是在其init中初始化Two(),因此您可以调用classOne.classTwo.myFunc(),然后它将设置为Tow.chocolate = "Chocolate",然后可以调用print(classOne.classTwo.chocolate),然后您将获得"Chocolate"

© www.soinside.com 2019 - 2024. All rights reserved.