我试图直接从类(子类)中调用类中的函数。我可以做的很好,但是我无法访问该函数中的变量,因此正在寻求帮助。一个简单的示例代码如下:
#!/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
,但不确定如何。
当您调用类对象时,所有类属性均由类的自身表示。在您的情况下,当您启动One()时,是在其init中初始化Two(),因此您可以调用classOne.classTwo.myFunc()
,然后它将设置为Tow.chocolate = "Chocolate"
,然后可以调用print(classOne.classTwo.chocolate)
,然后您将获得"Chocolate"
。