我正在python中使用GAE构建一个webapp。该项目最初是在没有GAE的情况下构建的,它工作得非常好,然后我将这些文件带入了GAE项目,突然间他们不再那么好玩了。一个文件land.py有4个表示不同土地类型的类,以及包含每个类的几个实例的列表。它们都基于陆地类,在land.py文件中。
class Land():
def __init__(self):
self.elevation = 0
self.neighbors = []
self.creatures = []
self.location = (0, 0)
self.was = None#to keep track of when flooded
def __str__(self):
return("location " + str(self.location) +
" elevation " + str(self.elevation) +
" neighbors " + str(len(self.neighbors)) +
" creatures " + str(x.name for x in self.creatures) + " | ")
def redefine(self, land):
self.elevation = land.elevation
self.neighbors = land.neighbors
self.creatures = land.creatures
self.location = land.location
self.was = land
另一个类simulation.py导入land,应该可以使用它,但是当我尝试
时self.map = Land.landMass(the list of list's)
for row in self.map:
print(row)
它会打印'[,,,,,,,][,,,,,,,][,,,,,,,][,,,,,,,]'
它确实会看到那里有物体,因为当我这样做时
for i in self.map:
for x in i:
output += x.__str__()
它打印每个陆地物体的正确输出。这是一个问题,因为当我想检查时
for row in self.map:
for column in row:
if isinstance(land, Land.Water): #or type(land)
它首先不知道土地是什么,但它也知道什么是Land.Water。如果你愿意,我可以提供代码,但很难确切地知道问题的确切位置。同样,在它自己的项目文件中它一切正常,但在GAE项目中却没有。谁知道为什么?
答案 0 :(得分:0)
print(row)正在做一个repr(对象)而不是str(obj)如果你看一下页面的来源,你会看到像
这样的东西至于你的其余代码,在不知道Land的定义的情况下很难分辨。 Land是db / ndb模型吗?
此问题的标题与您提出的问题实际上没有任何关系。我没有看到任何进口问题。
关于“它首先不知道什么是土地”的具体问题我假设你得到NameError name 'land' is not defined
,如果不是,请详细说明错误。如果是正确的错误,您在哪里定义land
?
此行看起来错误if isinstance(land, Land.Water): or type(land)
会给你一个SyntaxError