首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中返回低级函数的高级函数?

在python中返回低级函数的高级函数?
EN

Stack Overflow用户
提问于 2015-10-20 16:29:04
回答 1查看 442关注 0票数 0

基本上,我正在制作一个基于文本的蟒蛇游戏,并遇到了一个街区。

玩家可以进入一场战斗,和往常一样,你有可能会死(hp是0)。我想要做的是打破游戏的主循环,这是几个功能沿着道路,大约5-6 (从主战系统功能),分散在不同的文件。

结构如下:

代码语言:javascript
运行
复制
core()
    while True:
        main()
        game_over()
  • 内核-运行主函数和game_over()在While循环中
  • 主要功能运行游戏。
  • 主叫事件函数
  • 事件函数根据条件/环境(或者不满足任何条件/环境)做一些事情,只要玩家写“战斗”,->函数就调用战斗循环
  • 战斗循环中使用了大量的函数,但是循环所做的最终是检查玩家的hp是否大于0。

我想要做的是,每当玩家的hp达到0(甚至更低)时,main()函数就会中断,这样玩家就可以被提示退出游戏或者再次运行主函数。我希望这种情况不同于在每个函数之后输入return和一个值。

game_over函数提示播放器再次输入"new“并启动main(),因为函数根本不会做任何事情,或者”退出“,该函数将调用exit ()并退出游戏。

TL:医生--我怎么才能从一个较小的函数中挣脱出来呢?试图避免一连串的回报?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-20 16:39:21

您可以引发异常。

例如

代码语言:javascript
运行
复制
def main():
    if condition:
        raise StopIteration
    else:
        return value


while True:
    main()

对于更复杂的逻辑,您可以引发自定义异常并捕获它们:

代码语言:javascript
运行
复制
class GameOver(Exception):
    pass

class Quit(Exception):
    pass

def main():
    if game_over:
        raise GameOver
    if quit:
        raise Quit
    else:
        return value


while True:
    try:
        main()
    except GameOver:
        game_over()
    except Quit:
        break
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33241955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档