如何解决变量中的变量?

时间:2019-04-28 22:49:34

标签: python

我需要能够定义变量,但是每个变量的定义中都必须包含另一个变量。

作为一个完整的初学者,我正在python类中,并且几乎完成了一项家庭作业,我意识到我的代码由于实现python的核心要素而无法正常工作。 您不能相互调用两个变量。 这是必要的,因为我正在编写基于文本的冒险游戏,因此,对于程序的多个核心组件,我已经引用了变量内部的其他变量,例如能够返回同一房间并引用游戏中的场景。项目,以便我可以在函数中使用它。我无法发布直接代码,因为这是一项家庭作业,老师将在线搜索该代码的副本,但我已经编写了一些通用代码:

class obj():
   def __init__(self,name)
      self.name=name
dave=obj(maurice)
maurice=obj(dave)

1 个答案:

答案 0 :(得分:1)

Python代码中不能有循环引用。解释器一次执行一条指令,因此状态必须以特定顺序进行更新,Python不会为您做出此决定。搁置这一点后,在相关对象之前先获得一个对象“获得”引用就没有问题,因为您的游戏在两次更新之间就不能玩了。

您的典型游戏循环如下:

stop_processing_player_input()
update_state()
resume_processing_player_input()
class Person:
    def __init__(self, name):
        self.friends = {}
        self.name = name

    def become_friends(self, friend):
        self.friends.add(friend)
        friend.add(self)

resume_processing_input()
# player does things, dave and maurice
# are born and instantly become friends

stop_processing_player_input()

# begin state update
dave = Person(name='Dave')
maurice = Person(name='Maurice')

dave.become_friends(maurice)
# dave.friends.add(maurice)
# maurice.friends.add(dave)
# end state update

resume_processing_player_input()
相关问题