Python游戏编程: is my IO object a legitimate candidate for being a global variable?

标签 python io global-variables

我正在用 Python 编写一个游戏,其中所有 IO 事件都由一个 IO 对象完成(希望可以很容易地将那个对象换成另一个实现不同用户界面的对象)。游戏中几乎所有其他对象都需要在某个时候访问 IO 系统(例如打印消息、更新玩家位置、显示游戏中 Action 引起的特殊效果),所以我的问题是:

对全局可用的 IO 对象的引用有意义吗?

另一种方法是将对 IO 对象的引用传递到需要使用它的每个对象的 __init__() 中。我知道从测试的角度来看这很好,但这值得由此产生的“函数签名污染”吗?

谢谢。

最佳答案

是的,这是对全局变量的合法使用。如果您不愿意,传递等效于此全局的上下文对象是另一种选择,如您所提到的。

既然我假设你正在使用多个文件(模块),为什么不做这样的事情:

import io
io.print('hello, world')
io.clear()

这是具有比简单打印更复杂的 I/O 需求的程序执行诸如日志记录之类的事情的常见方式。

关于Python游戏编程: is my IO object a legitimate candidate for being a global variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/687703/

相关文章:

python - 如何使用 for 循环反转此字符串

python - 使用 Python3/C API 更新数组的元素

Python3.6 : Trying to avoid using a global for my swap function with tkinter

c++ - avr32-gcc:未使用函数输出初始化的全局变量

python - 如何创建具有多个位置参数的 argparse 互斥组?

python - 向 Pandas 数据框索引添加名称

java - 无法读取文件的最后一行,未进入循环

arrays - 如何按段落或 block 将文件读入数组

java - 在可序列化对象上获取 NotSerializableException

python - 在函数内修改全局列表