from sys import exit
from random import randint
class Map(object):
def death():
print quips[randint (0, len(quips)-1)]
exit(1)
def princess_lives_here():
print "You see a beautiful Princess with a shiny crown."
print "She offers you some cake."
eat_it = raw_input(">")
if eat_it == "eat it":
print "You explode like a pinata full of frogs."
print "The Princess cackles and eats the frogs. Yum!"
return death
elif eat_it == "do not eat it":
print "She throws the cake at you and it cuts off your head."
print "The last thing you see is her munching on your face. Yum!"
return death
elif eat_it == "make her eat it":
print "The Princess screams as you cram the cake in her mouth."
print "Then she smiles and cries and thank you for saving her."
print "She points to a tiny door and says, The Koi needs cake too. "
print "She gives you the very last bit of cake and shoves you in."
return gold_koi_pond
else:
print "The Princess looks at you confused and just points at the cake."
return princess_lives_here
class Engine(object):
def __init__(self, start, quips):
self.quips = [
"You died. You suck at this.",
"Your mom would be proud, if she were smarter",
"Such a luser.",
"I have a small puppy that s better at this."
]
self.start = start
def play(self):
next = self.start
while True:
print "
-----"
room = getattr(self, next)
next = room()
m = Map()
e = Engine(m, "princess_lives_here")
e.play()
我在终端得到的追溯是:
Traceback (most recent call last):
File "ec42.py", line 162, in <module>
e.play()
File "ec42.py", line 156, in play
room = getattr(self, next)
TypeError: getattr(): attribute name must be string
我做这件事太久了,就是无法确定。主要问题是让map类作为对象在引擎类中运行。提前感谢您的帮助。