クラスについて学び、コードを機能させることができましたが、戻り値はどこに行くのでしょうか。
コード:
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」を返すだけで、どのようにしてpiez(self)関数に到達したのかわかりません。以前は、名前を()で入力するだけで関数を飛び回っていましたが、この方法では文字列が返され、どのように飛び回っているのかわかりません。
これが私の観察です:
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()に割り当てられます。いきなりrooom(self)にジャンプ
7.)rooom(self)に到着し、「piez」を返します
8.)?? ピエズはどこかに返されます...そして私たちは今ピエズ(自己)にいます
誰かが私がギャップを埋めるのを手伝ってもらえますか?それは私を夢中にさせています。私は理にかなっていると思います...私は今1時間これを綿密に理解しようとしています、そしてそれを分解した後でも私は何かを誤解しているようです。