所以,我正在设计一个用于模拟CPU的标记系统。基本上,我有这个:
nFlag = False
vFlag = False
UFLAG = True
bFlag = True
DFLAG = False
iFlag = True
zFlag = False
cFlag = True
flags = [nFlag, vFlag, UFLAG, bFlag, DFLAG, iFlag, zFlag, cFlag]
基本上,我希望能够根据具体情况覆盖列表/数组的各个元素的bool。例如:
if condition == True:
flags[0] = True
预期的结果是nFlag等于True但仍然在列表中。
这可能吗?
答案 0 :(得分:0)
很难理解你的意思。我认为你的意思是你想要同时更改nFlag
的值及其在列表中的相应条目。
答案是否定的,你不能这样做。但你不想。不要使用单独的变量,只需使用列表;或者,更好的是,使用字典:
flags = dict(
nFlag=False
vFlag=False
UFLAG=True
bFlag=True
DFLAG=False
iFlag=True
zFlag=False
cFlag=True
)
现在你可以做flags['nFlag'] = True
,例如。
答案 1 :(得分:0)
没有。布尔值在Python中是不可变的(和单例),因此布尔变量不能以您描述的方式更新。一个更好的实现是使用字典,如
flags = {'nFlag': False, 'vFlag': False, 'UFLAG': True, 'bFlag': True, 'DFLAG': False, 'iFlag': True, 'zFlag': False, 'cFlag': True}
然后更新值
if condition: # Note: No need to compare explicitly to True
flags['nFlag'] = True