我对这个评估有一个疑问,“旧”,这是一个元组列表,在使用bp_list进行评估时应该评估False,这是一个相同的元组列表,但项目更少。非常感谢你。
while True: # game loop
if dead_flag == True:
pygame.time.wait(2000)
dead_flag = False
MAINSURF.fill(BLACK)
thePill.drawPills(p_inventary)
oldpoints = points
p_inventary, points = thePill.eatenPill(pac._x, pac._y, p_inventary)
bigPill(*bp_list)
#### This is the problematic part
old = bp_list
print ">>>", old
bp_list = eatBig(bp_list, pac._x, pac._y)
print "---",bp_list
if (old != bp_list):
print "they're different"
print "##", old_bp_list
print "##", bp_list
score += 50
if oldpoints != points:
score = (basep - points) * 10
"""else:
print "old_bp_list ", old_bp_list
print "bp_list ", bp_list """
if p_inventary == []:
break
答案 0 :(得分:1)
old = bp_list
此行不会将old
转换为bp_list
的副本。在此行之后,old
和bp_list
都引用同一个对象,对bp_list
的任何修改都会显示在old
上。