我目前仍在学习python,但到目前为止做得很好,所以我决定承担一个更大的项目,在这个项目中,我构建了一个简短的基于文本的游戏,并使用自定义模块来分离代码。不幸的是,我遇到了许多复杂的问题,并用一些谷歌和耐心修复了这些问题,但这一个是难倒我。你知道吗
问题本身是我有两个正在处理的文件:主.py以及房间Class.py. 在主.py有对输入的请求和将输入转换为lower的命令,但是我尝试将该输入转换为中的函数游戏室.py它就是不起作用。你知道吗
任何帮助是非常感谢,如果我在这个职位上做了什么错误,请让我知道。我是stackoverflow的新手,我可以接受任何我能得到的建议。你知道吗
我试图在单个模块中全局地分配它,但是我必须再次定义输入变量,这会导致我的代码弹出一个无用的输入点。你知道吗
也尝试将main导入文件,但这会在gameRooms和main之间创建太多依赖项。你知道吗
你知道吗主.py你知道吗
userInput = input('\nWhat shall you do? :> ')
gameInput = userInput.lower()
你知道吗游戏室.py你知道吗
class Rooms():
def __init__(self, pos, name, desc, exits, status, nLock, sLock, eLock, wLock):
self.pos = pos
self.name = name
self.desc = desc
self.exits = exits
self.status = status
self.nLock = nLock
self.sLock = sLock
self.eLock = eLock
self.wLock = wLock
def lookRoom(self):
global userInput
global gameInput
if gameInput in cfg.lookList and self.pos == cfg.xyMap:
print(f"\n{self.name}")
print(f"\n\t{self.desc}")
这只是模块的一小部分,但正是我试图解决的问题。主要是lookRoom中的gameInput(self):。你知道吗
我希望它能让我使用主.py但是输出只是说gameInput没有定义。你知道吗
首先,您应该对代码进行一些更改,这些更改将使您的代码听起来更像Pythonic。你知道吗
更改
main.py
,将代码放入一个带有return的函数中:变化
gameRooms.py
:gameInput
。你知道吗lookRoom()
。你知道吗main.py
。你知道吗现在,当您创建一个新对象
Rooms()
时,您必须通知所有参数,甚至参数gameInput
看一看:
您甚至可以使用
while
语句强制用户通知gameInput
,下面是一个示例:编辑1:
gameRooms.py
:main.py
:相关问题 更多 >
编程相关推荐