当一个类中的函数返回一个值时,它返回到哪里?

2024-09-30 01:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在学习关于类的知识,我的代码也能正常工作,但我只是想知道返回的值去哪里了?在

代码:

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”。在过去,我只是通过用()输入函数的名称来跳转函数,但这样我返回的是一个字符串,而不知道我是如何跳转的。在

以下是我的观察:

游戏(“Rooom”)实例化游戏

2.)从游戏中我们调用play()函数

3.)将“Rooom”发送到init并分配给自启动在

4.)play(self)启动并使用初始化函数自启动并设置为下一个房间名

5.)循环开始。下一个函数从Next_room_name抓取并分配给room

6.)下一个“房间”名称被指定给“房间”()。突然跳到鲁昂(自己)

7.)我们到达鲁昂(self)并返回“piez”

8.)??皮耶兹在某个地方回来了。。。我们现在在皮耶兹(self)

有人能帮我填补空白吗?我快疯了。我希望我说得通。。。我已经花了一个小时仔细地去理解这一点,甚至在把它分解之后,我似乎误解了什么。在


Tags: 函数代码nameself游戏playinitdef
1条回答
网友
1楼 · 发布于 2024-09-30 01:20:21

你有点困惑:

5.) Loop starts. Next function is grabbed from next_room_name and assigned to room

6.) next_room_name is assigned to room() . Suddenly jump to rooom(self)

如果等号存在,任何语句的返回值都分配给等号的左侧。在

当你写作的时候

x = hello()

这意味着:

“呼叫hello并将任何返回值存储在x

应该是的

room()调用的函数的返回值存储在next_room_name中”

希望这能为你澄清。在

相关问题 更多 >

    热门问题