首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在没有递归的情况下返回函数的开头

如何在没有递归的情况下返回函数的开头
EN

Stack Overflow用户
提问于 2022-07-23 22:40:03
回答 3查看 68关注 0票数 2
代码语言:javascript
复制
class PlayerAttributes:
        inventory = []
        def __init__(self, name, inventory):
            self.name = name
            self.inventory = inventory # LIST
    class Item:
        def __init__(self, item_name, damage):
            self.item_name = item_name
            self.damage = damage

class Weapons(Item):
    weapon_1 = Item("Me Sword", 100)


Player_1 = PlayerAttributes("Bob", [])

def get_name():
    Player_1.name = input("Enter name here: ").capitalize()
    commands()

def stats():
    print("Name = " + str(Player_1.name), "\n",
          "Inventory: ")
    for x in Player_1.inventory:
        print(str(x.item_name))

def commands():
    prompt = None
    prompt_choices = {"stats", "quit", "give"}
    while prompt not in prompt_choices:
        prompt = input("Enter Command: ").lower()
    if prompt == "stats":
        stats()
        commands()
    elif prompt == "quit":
        quit()
    elif prompt == "give":
        Player_1.inventory.append(Weapons.weapon_1)
        commands()

get_name()

问题

--我目前正在通过调用if语句中的“命令()”返回while循环,但是被告知这是一个递归,它是不必要的,而且它具有扩展调用堆栈的副作用.

问题

,我该怎么做呢??

额外

如何扩展调用堆栈?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73094673

复制
相关文章

相似问题

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