所以我一直在阅读Zed Shaw撰写的“学习Python的艰难之路”这本书,它说使用超过2个if语句是很糟糕的。我目前正在编写游戏,使用多个if语句对我来说更有意义:
shoot = -50
zombie_hp = -100
def zombie1(shoot, zombie_hp):
return shoot - zombie_hp
def attack():
attack = raw_input("What will you do?: ")
print zombie1(zombie_hp, shoot)
if attack == "shoot":
if shoot == -50:
print "Zombie health 50/100"
attack2 = raw_input("What will you do?: ")
print zombie1(zombie_hp, shoot)
if attack == "shoot":
print "Zombie health 0/100 (Zombie dies)"
attack()
现在为什么在这个问题的深层次上写下3个不好?谢谢!
答案 0 :(得分:1)
我认为,深度嵌套的if
分支可以限制代码扩展的容易程度。举个例子,如果将来你想要实施不同数量的攻击,或者拥有不同数量的生命值的僵尸,会怎样?我的建议是避免委托自己为每个不同的攻击序列和僵尸组合创建明确不同的if
分支条件。
此链接还提供了一些更具体的示例,说明您可能希望避免此模式的原因: http://c2.com/cgi/wiki?ArrowAntiPattern
答案 1 :(得分:0)