首页 > 解决方案 > 如何使用从一个函数到另一个函数的列表值

问题描述

我正在尝试从用户那里获取一组值并打印 max, min 和 mean values 。但我无法访问我在 insert() outside 中获取的温度值 (t[])。有人可以帮我吗 。

我尝试将列表 t 作为参数传递给另一个函数,但它说 TypeError: iteration over non-sequence

class TempTracker:
    def insert(self, temp):
        t = []
        self.temp = temp
        t.append(self.temp)
        return t

    def get_max(t):
        for i in t:
            print(i)

    def get_min():
        pass

    def get_mean():
        pass


a = TempTracker()
b = TempTracker()
temp = [1, 2]
a.insert(temp)
b.insert(3)
a.get_max()

我应该得到每次传递的值列表的最大值、最小值和平均值

标签: python

解决方案


您需要初始化您的类,以便在每个类函数中都有可用的值。这样你就可以通过引用 self 来调用这些值:

class TempTracker:
    def __init__(self):
        self.t = list()
        self.temp = None
    def insert(self, temp):
        self.temp = temp
        self.t.append(self.temp)
        print("test", self.t)
        return self.t

    def get_max(self):
        for i in self.t:
            print(i)

    def get_min():
        pass

    def get_mean():
        pass

def main():
    a = TempTracker()
    b = TempTracker()
    temp = [1, 2]
    a.insert(temp)
    b.insert(3)
    a.get_max()

这样,您还可以使用值而不是使用插入来初始化您的类:

def __init__(self, values):
        self.temp = values
        self.t.append(self.temp)

推荐阅读