如何通过迭代访问 '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()
我希望这适合你的情况
我不知道如何有效地表达我的问题,但我会尽力而为。我希望能够使用 '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()
我希望这适合你的情况