我正在做一个基于文本的冒险游戏,我打算玩很长时间。当然,我没有把所有的代码都放在main.py
中,而是决定根据玩家的选择将章节分割成不同的文件,在if
块中运行。然而,有一个小问题:我用来定制故事的所有用户信息(姓名、性别、服装等)都存储在main.py
中。
所以,如果我有另一个文件(比如说option3.py
),我写的是
print(f"{user_name} walked down the street.")
我没有user_name
存储在option3.py
中。我不希望每次都将特定的变量导入到20多个文件中,但我听说共享名称空间是个坏主意,所以我想知道是否有更好的方法来解决这个问题
额外:我还想加入某种物品库存功能,但我不确定如何实现这一点,因为这是一个多文件问题,而且库存经常会发生变化
最好是使用类并导入它们。如果您创建了一个名为User的类,并将所有必要的属性放入该类中,则可以导入该类
例如,创建user.py文件:
然后,无论主游戏循环在哪里,都可以执行
from user import User
这样,您就可以使用
user1 = User('SomeName', 'F', 'Skirt')
创建一个新的用户对象,访问属性如下:print(user1.name)
如果不想污染名称空间,可以这样做
game_variables.py
main.py
但是,我认为您忽略了一点,即游戏状态必须在所有模块之间共享,在这种情况下,您需要创建全局变量。但是,这可能导致各种不一致
相反,最好为设计中的每个模块创建一个类,并使用getter和setter在多个文件之间传递对象状态
cat.py
update.py
main.py
相关问题 更多 >
编程相关推荐