如果声明深入,为什么超过2会被认为是不好的?

时间:2014-12-07 04:41:17

标签: python-2.7

所以我一直在阅读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个不好?谢谢!

2 个答案:

答案 0 :(得分:1)

我认为,深度嵌套的if分支可以限制代码扩展的容易程度。举个例子,如果将来你想要实施不同数量的攻击,或者拥有不同数量的生命值的僵尸,会怎样?我的建议是避免委托自己为每个不同的攻击序列和僵尸组合创建明确不同的if分支条件。

此链接还提供了一些更具体的示例,说明您可能希望避免此模式的原因: http://c2.com/cgi/wiki?ArrowAntiPattern

答案 1 :(得分:0)

1)让其他开发者更难理解,更重要的是 - 当你以后回顾它时,你会更难理解。

2)它使你的代码变得脆弱和脆弱。

3)Tell, don't ask