我正在尝试执行以下操作:
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_0
或text_1
中。我知道我可以把它放在if
语句中,但我想知道是否有一种方法可以根据x
的值将text_x
更改为text_0
或text_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
语句。