如何通过迭代访问 'self' 字典中的值?

How can I access values from the 'self' dictionary through iteration?

我不知道如何有效地表达我的问题,但我会尽力而为。我希望能够使用 'for' 语句遍历字典并访问以前创建的 'self' 项。就像我说的,这个问题很难说。

我发现我可以使用 exec() 来执行此操作,但我被告知除非绝对必要,否则不要使用 exec()。另外,我意识到这个例子所做的在技术上是无用的,但它是我需要的一个非常简化的版本。

global counter
counter = 0
class GUI:
    def __init__(self):
        self.stuff = ["foo","bar","fooest","barest"]
        for i in self.stuff:
            self.process(i)
        self.printAll()

    def process(self,i):
        global counter
        counter += 1
        self.__dict__.update({"ex{}".format(counter):i})

    def printAll(self):
        global counter
        while counter > 0:
            exec("print(self.ex{})".format(counter))
            counter -= 1
GUI()

这确实有效; printAll(self) 会打印 self.ex1 到 ex4。没有 exec() 有没有办法做到这一点?请帮忙!

global counter
counter = 0
class GUI:
    def __init__(self):
        self.stuff = ["foo","bar","fooest","barest"]
        for i in self.stuff:
            self.process(i)
        self.printAll()

    def process(self,i):
        global counter
        counter += 1
        self.__dict__.update({"ex{}".format(counter):i})

    def printAll(self):
        global counter
        while counter > 0:
            print(eval("self.ex{}".format(counter)))
            counter -= 1
GUI()

我希望这适合你的情况