将超类的变量添加到字典子类并读取值

时间:2016-04-14 16:12:40

标签: python-3.x dictionary subclass

我无法从子类中的字典访问超类变量。 以下代码是一个简化示例:

class SetStuff:
    def __init__(self):
        self.temperature = 0.0

    def set_temp(self, temp):
        self.temperature = temp


class DoStuff(SetStuff):
    def __init__(self):   
        super().__init__()
        self.info_dict = {"temp": {"current_temp": self.temperature}}

    def print_stuff(self):
        print("temp_var:", self.temperature)
        print("dict:", self.info_dict)



test_stuff = DoStuff()
test_stuff.set_temp(12.1)
test_stuff.print_stuff()

最终通话的结果是:

temp_var: 12.1
dict: {'temp': {'current_temp': 0.0}}

我希望打印的字典包含12.1。我似乎无法理解这里发生的事情以及如何解决这个问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

查看self.info_dict的设置位置。它位于__init__中,因此current_temp的self.temperature值确实为零,因为它被设置为{{>初始值self.temperature 1}}