我一直在学习类并且我的代码可以工作,但我只是想知道返回的值去哪里了?
代码:
from sys import exit
from random import randint
class Game(object):
def __init__(self, start):
self.pie = [ 'pie test']
self.start = start
def play(self):
next_room_name = self.start
while True:
print "\n--------"
room = getattr(self, next_room_name)
next_room_name = room()
def rooom(self):
print "Test worked. good job"
return "piez"
def piez(self):
print "pie room"
exit(1)
a_game = Game("rooom")
a_game.play()
例如,在上面的代码中,我在 rooom() 中返回“piez”,它现在将我带到 piez(self) 函数。但是,返回值将我带到哪里?
它是否在课堂外返回“piez”并以新值重新进入课堂?它是否将字符串“piez”返回给init (self, start) ?我只是将值返回到前一个函数 play(self) 吗?
除此之外,一切正常,但我只是不明白我是如何到达piez(self) 函数的,只需在前一个函数中返回“piez”。过去我只是通过用 () 输入函数的名称来跳转函数,但是这样我会返回一个字符串并且不确定我是如何跳转的。
这是我的观察:
1.) 将 Game("Rooom") 类实例化为 a_game
2.) 从 a_game 我们调用 play() 函数
3.) "Rooom" 被发送到 init 并分配给 self.start
4.) play(self) 启动并使用初始化函数 self.start 并设置为 next_room_name
5.) 循环开始。从 next_room_name 中获取下一个函数并分配给房间
6.) next_room_name 分配给 room() 。突然跳到房间(自己)
7.) 我们到达 rooom(self) 并返回“piez”
8.) ?? Piez 被返回某个地方......我们现在在piez(self)
有人可以帮我填补空白吗?这让我疯狂。我希望我说得通……我一直在努力理解这一点一个小时,即使在分解它之后,我似乎也误解了一些东西。