python - 处理要在没有全局变量的情况下跨函数使用的变量

标签 python oop encapsulation

所以我正在开发一个基本的文字游戏,在这个游戏中,你会得到一个字母“手”(字典对象),你可以用它来创建单词并获得分数。

这个“手”被用在许多功能的参数中:计算玩家的分数,在玩家使用一个或多个字母后更新手中的字母数量,显示手牌,检查手牌的有效性玩家的话等

根据我所阅读的所有内容,我知道我应该尽可能避免使用全局变量(尽管我仍然不完全确定为什么)。

那么对于许多使用“hand”作为参数的函数,我还可以使用什么其他通用方法呢?

最佳答案

它被称为对象。创建 class共享状态,以及共享该状态的函数。

这比全局变量更好的原因是它是同一概念的更受限制的版本 - 您可以清楚地看到哪些函数正在操纵这些变量,并记录(并强制执行)这些变量的预期不变量。使用全局变量,最终很容易拥有对共享变量的状态有不同期望的函数。

它还允许您拥有同一对象的多个副本,因此不必将您的变量转换为集合,并在集合成员之间关联,您拥有一个对象集合,这使您的代码更简单。 然后仅通过您定义的函数来操作这些对象就变得简单了

关于python - 处理要在没有全局变量的情况下跨函数使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482237/

相关文章:

python - Django IntegrityError 列 "author_id"中的 null 值违反了非空约束

oop - 为什么 Rust 不支持特征对象向上转换?

oop - 函数是封装的一个例子吗?

c - 嵌入式系统中封装的意图

asp.net - 为什么事件冒泡,为什么不直接订阅点击事件?

C++类和静态

javascript - Websocket 服务器连接到 Django 以转发广播

python - PyAudio-Windows 10的延迟变化

Python:对本地服务器的请求不起作用

javascript - 我怎样才能合并我的 JavaScript 文件并仍然让我的回调等待就绪状态?