【问题标题】:How can I change a Bool variable in one function from another?如何从另一个函数中更改一个函数中的 Bool 变量?
【发布时间】:2016-03-07 03:35:12
【问题描述】:

我目前遇到了一些关于布尔值的问题。在 Learn Python The Hard Way 中达到 ex35 后,我正在创建 a game

在我的游戏中,有两个功能我遇到了问题(roomOne 和 getFood),一个功能将您带到另一个功能,然后您可以选择拿起一块食物 - 您稍后会使用扔一个开关来禁用你周围的电场。

我希望用户只有在他身上确实有食物的情况下才能扔食物......目前 - 以我的程序设置方式 - 用户是否真的有食物并不重要 -无论哪种方式,他都可以扔。我试图在获取食物函数中返回 foodBrick = True 或 (==) 。但它没有成功。

我该如何修复我的游戏,以便只有当 foodBrick 在我身上时才能关闭开关?

【问题讨论】:

  • if 'throw' in throw 现在就足够了,但Foodbrick = True 也应该是必需的。请阅读有关提出最小问题的内容。
  • 好的。我只是查找了“最小问题”。对不起,下次我会尽量缩短它!感谢您的意见。
  • 请直接在问题中包含代码(不要在链接中,因为链接更改,然后问题变得无用)。

标签: python function boolean


【解决方案1】:

您的直接问题是因为您总是设置 foodBrick = True,无论用户在您的 getFood() 子例程中输入什么。

你已经做了很多工作,所以我建议你看一下代码,看看你是否可以识别出你正在重复做的任何事情,看看你是否可以将那些常见的事情变成一个子程序。

除此之外,我认为您应该考虑将播放器设为对象(类的成员)或字典,以便您可以在不同的子例程中为播放器添加属性,并使它们始终可见。比如:

player['hasFood'] = True

player.has_food = True

取决于你如何实现它。

【讨论】:

  • 谢谢!我还没有学到任何关于课程的知识,但我又翻了几页书,在上面找到了一页——我今晚会读一读。我很感激帮助。 :D
  • 您可以从模块范围内的空字典开始(根本不缩进):Player = { }
猜你喜欢
  • 1970-01-01
  • 2016-10-18
  • 2017-01-24
  • 1970-01-01
  • 2021-05-30
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多