我需要能够定义变量,但是每个变量的定义中都必须包含另一个变量。
作为一个完整的初学者,我正在python类中,并且几乎完成了一项家庭作业,我意识到我的代码由于实现python的核心要素而无法正常工作。 您不能相互调用两个变量。 这是必要的,因为我正在编写基于文本的冒险游戏,因此,对于程序的多个核心组件,我已经引用了变量内部的其他变量,例如能够返回同一房间并引用游戏中的场景。项目,以便我可以在函数中使用它。我无法发布直接代码,因为这是一项家庭作业,老师将在线搜索该代码的副本,但我已经编写了一些通用代码:
class obj():
def __init__(self,name)
self.name=name
dave=obj(maurice)
maurice=obj(dave)
答案 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()