【发布时间】:2016-02-14 00:17:15
【问题描述】:
我正在尝试使用类对象的函数来创建新的类对象并遇到问题。这是我到目前为止的代码:
class Room(object):
def __init__(self, name):
self.name = name
self.N = None
self.E = None
self.S = None
self.W = None
'''relevant code'''
def north(self,room):
self.N = Room(room)
self.N.S = self
def south(self,room):
self.S = Room(room)
self.S.N = self
所以我至少想要这些打印语句中的一个
room1 = Room('room1')
room1.north('room2')
print(room2.S)
print(Room(room2).S)
print(Room('room2').S)
吐出“room1”,但前两个不起作用,因为 room2 作为变量尚未定义,最后一个不起作用,因为它似乎是在创建一个新对象而不是引用现有的,所以它只打印默认的“无”。
是否真的存在一种方法来引用没有设置变量的现有对象?还是我唯一的选择是这样做?
def north(self,room):
roomDict[room] = Room(room)
self.N = roomDict[room]
self.N.S = self
编辑:我意识到我可能应该调用新 Room 的 south() 函数,而不是直接更改 S 变量,但直觉上这似乎会导致循环,所以我还没有触及它。
【问题讨论】:
标签: python class python-3.x object