我一直在學習有關類,我有我的代碼工作,但我只是想知道返回的值去哪裏?當一個類中的函數返回一個值時,它返回到哪裏?
代碼:
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(個體經營)功能。但是,回報價值將帶到哪裏?
它是否返回「piez」之類外,並用新值重新進入類?它是否將字符串「piez」返回到init(self,start)?我只是將值返回到前一個函數,play(self)?
除此之外,一切工作正常,但我就是不明白,我怎麼到達piez(個體經營)功能,只需在前面的函數返回「piez」。在過去,我只是通過用()輸入名稱來繞過函數,但這樣我就返回一個字符串,不知道我是如何跳轉的。
這裏是我的觀察:
1)實例化類遊戲( 「Rooom」),以a_game
2)從a_game我們所說的play()函數
3)「Rooom 「發送到init和分配給self.start
4.)播放(個體)啓動和使用intialized功能self.start並設置到next_room_name
5.)迴路ST藝術。下一個功能是從next_room_name抓住並分配到房間
6.)next_room_name被分配到室()。突然跳到rooom(個體經營)
7)我們到達rooom(個體經營),並返回 「piez」
8)? Piez某處返回......我們現在正處於piez(個體經營)
有人可以幫助我彌補差距?這讓我瘋狂。我希望我有道理......我現在正在密切地試圖理解這一個小時,甚至在分解之後,我似乎誤解了一些東西。
類方法就像常規函數一樣。請在學習課程之前瞭解功能如何工作。 – Antimony 2012-08-07 01:21:55
@Antimony我用普通功能做得很好。我只需鍵入他們的名字function(),然後它就會在那裏。我不明白這是相同的:\ – Danielle 2012-08-07 01:27:01
常規函數也可以返回值。當他們這樣做時,可以使用類似'a = function()'的語法。如果你明白這一點,你會理解這段代碼。 – 2012-08-07 01:27:37