基于循环索引存储变量



我正在尝试执行以下操作:

text_0="none"
text_1="none"
x = 0
for i in range (1,9):
x = i%2
if i%2 == 0:
text = hello
elif i%2 == 1:
text = bonjour
text_x = text

我试图基于i的索引将"hello""bonjour"存储到text_0text_1中。我知道我可以把它放在if语句中,但我想知道是否有一种方法可以根据x的值将text_x更改为text_0text_1

简短的回答是肯定的。您可以将x放入自己的类中,然后在x发生更改时重载__getattrs__以更改text_

text_0 = "none"
text_1 = "none"
class VariableTrigger:
def VariableTrigger(self, x):
self.x = x
def __setattrs__(self, name, value):
if(name == "x"):
if(value == 1):
text_0 = "hello"
if(value == 0):
text_0 = "bonjour"
self.__dict__[name] = value
the_x = VariableTrigger(0)
print(text_0) //prints 'hello'
the_x.x = 1
print(text_0)  //prints 'bonjour'

长期的答案是,这对于你想要做的事情来说太麻烦了,太复杂了,你应该只使用if语句。