所以我用Place类生成了一堆Place,然后在Player类中,我试图创建一个方法,通过我向西旅行的places列表查看当前位置并查看连接的位置,但是由于我很新,OOP,我不确定如何将Player函数的访问权授予main()中创建的列表
def main():
import random
places = []
places.append(Place("Boston", "Sunny - 55°F", ("Worcester", None), "645,966", "Marty Walsh"))
places.append(Place("Worcester", "Sunny - 64°F", ("Springfield", "Boston"), "182,544", "Joseph Petty"))
places.append(Place("Springfield", "Sunny - 67°F", ("Pittsfield", "Worcester"), "153,703", "Domenic Sarno"))
places.append(Place("Pittsfield", "Sunny - 63°F", (None, "Springfield"), "44,057", "Linda Tyer"))
这也是在main()中生成播放器的地方:
^{pr2}$以下是Place类构造函数:
class Place(object):
def __init__(self, name, weather, cl, pop, mayor):
self.name = name
self.weather = weather
self.connectedLocation = cl
self.population = pop
self.mayor = mayor
以下是Player类构造函数:
class Player(object):
def __init__(self, name, curLoc):
self.name = name
self.curLoc = curLoc
后来在Player类中,我试图使这个方法无效,因为令我沮丧的是,类不能访问main()中创建的位置列表
def goWest(self):
for place in places:
if self.curLoc.connectedLocation[0] == place.name:
self.curLoc = place
您需要通过添加places参数将places列表传递给
goWest
函数。它看起来像这样:我添加break语句是因为我假设一旦找到了当前位置,就不需要继续迭代列表。在
相关问题 更多 >
编程相关推荐