【问题标题】:How do I stub functions in python? [closed]如何在 python 中存根函数? [关闭]
【发布时间】:2018-02-08 19:56:37
【问题描述】:

这是我最初的几节编程课,我遇到了一个我不太了解如何进行的问题。

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# 开始填写。不知道如何开始或继续。

【问题讨论】:

  • 你还没有说你的问题是什么。您具体需要哪些帮助?
  • 你已经有存根了。传递但什么都不做的函数
  • 如果你不明白你的作业,你为什么不问给你的老师解释他们的意思?这正是他们得到报酬的目的。
  • 正如@KenWhite 所说,这个问题与编程无关。更多的问题是您不了解作业中的要求,因此最好与您的老师澄清。

标签: python function stub


【解决方案1】:

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

def take_defensive_action(attacked_entity, attack_move):
    pass

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


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

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

  • take_offensive_action(protagonist, cave_balrog)

明确什么是存根的含义,您应该能够相应地定义这些函数,因为它们尚未定义。这是yell 的示例:

def yell(protagonist, message):
    pass

我把第二个留给你。

【讨论】:

    猜你喜欢
    • 2015-11-06
    • 1970-01-01
    • 2022-01-23
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多