我有一个面向对象的程序,有我自己做的房间。每个房间都有一些值,例如北-南-东-西或下一个是您可以移动到的方向。你知道吗
#ROOM CONSTRUCTOR
class Room(object):
#Constructor
def __init__(self, name, n_path, s_path, e_path, w_path, next_path, description):
self.name = name
self.description = description
self.north = n_path
self.south = s_path
self.east = e_path
self.west = w_path
self.next = next_path
那是我的房间。我的房间看起来像:
Northwest_Beach = Room('Northwest Beach',None, 'Mauna_Kea_Volcano', 'Volcano', None, Surf, 'Description goes here')
我想显示玩家可以去的所有可能的方向。我试着做:
if Room(n_path):
print "---North"
我会为每个方向做同样的事情:南、东、西和下一个方向。它告诉我n\u路径是未定义的。有没有更好的办法,或者我能解决的办法?你知道吗
Room
是类的名称。您想指定一个对象。你知道吗如果有问题的代码在某个
Room
方法中,请尝试:否则,请使用对象的名称,如下所示:
或者,您可能有一个变量,它代表用户恰好所在的任何房间。如果是这样,您的代码将如下所示:
无论如何,您希望点的左侧(
.
)是绑定到类型为Room
(self
、Northwest_Beach
或current_room
)的对象的名称,而点的右侧是房间的属性之一(north
、south
,等等)。你知道吗您只是没有正确访问North的class属性,如上图所示,请使用:
在此行中:
Room(n_path)
正在初始化一个新类,或者它至少会传入正确的参数,但是当传入n_path
时,变量n\u路径没有在任何地方定义,因此它会引发此异常。你知道吗您已经有了一个类实例,它的属性
north
是通过传入可以检查的n_path
参数设置的相关问题 更多 >
编程相关推荐