python-3.x 我如何使用一个函数返回多个变量值并将它们解析到一个类?

oalqel3c  于 2023-05-02  发布在  Python
关注(0)|答案(1)|浏览(92)

有人能解释一下如何修改这个程序,使多个结果被解析到do类吗?
doclass.py

class do:
    def __init__(self, a1, b2, c3):
        self.a = a1
        self.b = b2
        self.c = c3

    def wahh(self):
        print(self.a*10)
        print(self.b*40)
        print(self.c*23)

    def main(self):
        self.wahh()

test.py

from doclass import do
blah = [1,2,3,4,5,6,7,8,9,10]

def forloop():
    for num in blah:
        a1 = 10 * num
        b2 = 100 * num
        c3 = 1000 * num

        return a1, b2, c3

a,b,c = forloop()
stuff = do(a,b,c) 
stuff.main()
wswtfjt7

wswtfjt71#

我看到的问题是你的forloop函数,它在for循环中返回:这意味着它将在第一次迭代num = 1时停止该循环。您可能希望从blah列表中获取所有计算值。为此,您可以将return替换为yield,这将使您的函数成为generator function。然后,您可以循环此生成器以生成所有预期值。

def forloop(data):
    for num in data:
        a1 = 10 * num
        b2 = 100 * num
        c3 = 1000 * num

        yield a1, b2, c3

for a,b,c in forloop(blah):
    stuff = do(a,b,c)
    stuff.main()

相关问题