gpt4 book ai didi

python - 我不明白代码行为

转载 作者:行者123 更新时间:2023-12-01 05:40:53 24 4
gpt4 key购买 nike

我有以下代码:

from random import randint
from medical_room import *
from Library import *
from basement import *
from End import *

class start_Game(object):
def __init__(self):
print "You landed on planet and see three rooms."
print "You approach and see that you need to enter password..."
self.door=raw_input("Pick number of door>>>")
self.password=('%d')%(randint(1,9))
self.entered_password=int(raw_input("Enter password of one digit>>>"))
self.ROOMs={'1':Medical_room,'2':Library,'3':basement,'4':End}
while True:
# break
room=self.ROOMs[self.door]
# print room()
self.door=room()

a=start_Game()

当询问门号时,我选择“1”,并启动 Medical_room 类(类代码如下):

class Medical_room(object):
def __init__(self):
self.play()

def play(self):
print "Medical_room plays"
return '2'

但是由于出现错误,我无法切换到 Library 类:

room=self.ROOMs[self.door]
KeyError: <medical_room.Medical_room object at 0x0000000002906978>

对我来说一切都很好,但是Python不喜欢我的“伟大的逻辑”。请帮忙。

最佳答案

在循环运行之前,self.door 是一个字符串。在循环的第一次迭代中,您将 self.door 设置为第一次迭代中对象的引用。在第二次迭代中,您尝试使用该对象作为 self.ROOMS 上的键,但该字典只有键字符串。

你需要将self.door设置为play返回的字符串,我相信:

while True:
room=self.ROOMs[self.door]
self.door=room().play()

但是,这不允许您在每个房间中选择一扇新门(除非您更改 play 的定义)。

关于python - 我不明白代码行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17573674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com