如何在 python 中存根函数?

Jer*_*im 1 python function stub

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

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')
Run Code Online (Sandbox Code Playgroud)

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

cs9*_*s95 6

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

def take_defensive_action(attacked_entity, attack_move):
    pass
Run Code Online (Sandbox Code Playgroud)

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


将您的代码粘贴到 PyCharm 中,我看到以下函数以“黄色”突出显示(这意味着这些函数名称带有Unresolved reference):

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

  • take_offensive_action(protagonist, cave_balrog)

清楚什么是存根的含义,您应该能够相应地定义这些函数,因为它们还没有被定义。下面是一个例子yell

def yell(protagonist, message):
    pass
Run Code Online (Sandbox Code Playgroud)

我把第二个留给你。