如何在 python 中存根函数?

How do I stub functions in python?

这是我的前几节编程课,我遇到了一个我不太明白如何继续的问题。

def defeat_balrog(protagonist):    
    def spawn_balrog():
        """Spawns and returns a stubborn balrog"""
        pass
    def balrog_attack(balrog, person):
        """Returns an attack move from the balrog's repertoire"""
        pass
    cave_balrog = spawn_balrog()
    is_balrog_defeated = False
   yell(protagonist, 'You cannot pass!')
    while not is_balrog_defeated:
        current_attack = balrog_attack(cave_balrog, protagonist)
        if current_attack != None:
            take_defensive_action(protagonist, current_attack)
        yell(protagonist, 'YOU SHALL NOT PASS!')
        take_offensive_action(protagonist, cave_balrog)
        is_balrog_defeated = True
    return True

def take_defensive_action(attacked_entity, attack_move):
    """
    attacked_entity anticipates attack_move and defends himself.
    """
    pass
#my stubs here#
defeat_balrog('gandalf')

我应该找出剩余的那些一厢情愿地使用但尚未创建存根的函数,并从最后一行#my stubs here#开始填写。不确定如何开始或继续。

存根是一种存在但没有为其定义任何有意义的业务逻辑的函数。例如:

def take_defensive_action(attacked_entity, attack_move):
    pass

注意到这里的 pass 声明了吗?这意味着您已经定义了一个有效的函数,但它什么也没做。


将您的代码粘贴到 PyCharm,我看到以下函数在 "yellow" 中突出显示(这意味着这些函数名称具有 Unresolved reference):

  • yell(protagonist, 'YOU SHALL NOT PASS!')

  • take_offensive_action(protagonist, cave_balrog)

清楚什么是存根的含义,你应该能够相应地定义这些函数,因为它们还没有被定义。这是 yell 的示例:

def yell(protagonist, message):
    pass

第二个留给你