亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用從一個函數到另一個函數的列表值

如何使用從一個函數到另一個函數的列表值

慕沐林林 2022-05-24 15:10:24
我正在嘗試從用戶那里獲取一組值并打印 max, min 和 mean values 。但我無法訪問我在 insert() outside 中獲取的溫度值 (t[])。有人可以幫我嗎 。我嘗試將列表 t 作為參數傳遞給另一個函數,但它說 TypeError: iteration over non-sequenceclass 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():        passa = TempTracker()b = TempTracker()temp = [1, 2]a.insert(temp)b.insert(3)a.get_max()我應該得到每次傳遞的值列表的最大值、最小值和平均值
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您需要初始化您的類,以便在每個類函數中都有可用的值。這樣你就可以通過引用 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)


查看完整回答
反對 回復 2022-05-24
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

問題在于 的定義get_max。當您將其參數設置為t,而不是其他參數時,它t開始像self您在該類中編寫的其他函數一樣工作。


實際上,self 也只是一個標識符而已。因此,當您嘗試調用時a.get_max(),您將TempTracker' 實例傳遞給對象屬性get_max,然后它將嘗試迭代對象本身,這是不可能的,因為它不是迭代器。


你可能做了什么: -


class TempTracker:

    t = []                  # moved t outside the insert's scope to prevent reinitialization

    def insert(self, temp):

        self.temp = temp

        self.t.append(self.temp)

        return self.t

    def get_max(self,):

        for i in self.t:

            print(i)

    def get_min(self,):

        pass

    def get_mean(self,):

        pass



a = TempTracker()

b = TempTracker()

temp = [1, 2]

a.insert(temp)

b.insert(3)

a.get_max()


查看完整回答
反對 回復 2022-05-24
  • 2 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號