我一直在学习类,我得到了我的代码,但我只是想知道返回值在哪里?
代码:
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)?我只是将值返回到上一个函数,播放(自我)吗?
除此之外,一切都运行正常,但我只是不明白我是如何到达piez(self)函数的,只需在前一个函数中返回“piez”即可。在过去,我只是通过用()键入它的名称来跳转函数,但是这样我回复了一个字符串而不确定我是如何跳转的。
这是我的观察:
1。)将类游戏(“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(自己)并返回“piez”
8。)?? Piez回到某个地方......我们现在在piez(自我)
有人可以帮我填补空白吗?这让我疯狂。我希望我有意义......我一直在密切地试图理解这一点一小时,即使在打破它之后我似乎也误解了一些东西。
答案 0 :(得分:3)
你有点混淆:
5.)循环开始。下一个函数从next_room_name中获取并分配给房间
6。)next_room_name被分配给room()。突然跳到房间(自我)
如果存在等号,则任何语句的返回值都分配给等号的左侧。
写作时
x = hello()
这意味着:
“调用hello并将任何返回值存储在 x ”
中所以它应该是
“room()
调用的函数的返回值存储在next_room_name
”
希望这能为你澄清。