名單我有如下一個Agent
類:附加價值,從特定類型
import Point
import random
class Agent(object):
"""description of class"""
locationX = 0
locationY = 0
def __init__(self, point = None):
self.locationX = point.x
self.locationY = point.y
def GenerateAgents(numberOfAgents):
agentList = []
while len(agentList) < numberOfAgents:
point = Point.Point()
point.x = random.randint(0, 99)
point.y = random.randint(0, 99)
agent = Agent(point)
agentList.append(agent)
return agentList
def AppendValue(agentList):
for item in agentList:
item.append(False)
return agentList
def GetAgentCoordinate(agentList, agentIndex):
for agent in agentList:
return agentList[agentIndex]
除了Point
類就像這樣:
import math
class Point(object):
"""description of class"""
x = 0
y = 0
def __init__(self, x = None, y = None):
self.x = x
self.y = y
def GetDistance(point1, point2):
return math.sqrt(math.pow(point1.x - point2.x, 2) +
math.pow(point1.y - point2.y))
這裏是Main
類:
import Agent
import Point
if __name__ == "__main__":
agentList = Agent.Agent.GenerateAgents(100)
selectedAgent = Agent.Agent.GetAgentCoordinate(agentList, 10)
myList = Agent.Agent.AppendValue(agentList) //ERROR!
我打算附加False
值到每個子列表agentList
。但這是追溯。 Appendvalue
已在我的Agent
類中定義,append
已被考慮到list
,但我沒有找到問題的答案。
這聽起來可能是一個愚蠢的錯誤......你能否清理案子?
Traceback (most recent call last):
File "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 106, in
exec_file
exec_code(code, file, global_variables)
File "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 82, in exec_code
exec(code_obj, global_variables) File "C:\Users\Matinking\documents\visual studio 2013\Projects\NeuroSimulation\NeuroSimulation\Main.py", line 8, in <module>
myList = Agent.Agent.AppendValue(agentList) File "C:\Users\Matinking\documents\visual studio 2013\Projects\NeuroSimulation
\NeuroSimulation\Agent.py", line 28, in AppendValue
item.append(False)
AttributeError: 'Agent' object has no attribute 'append'
Press any key to continue . . .
首先,您應該提供一個_minimal_示例來說明問題。其次,我認爲錯誤信息很清楚,你的問題到底是什麼? – kirelagin
'agentList'不是列表的列表。它是一個'Agent'對象列表('agentList.append(agent)')。 –
你正在使用完全錯誤的類。 1)不要在函數之外定義變量'locationX'和'locationY' - 實際上你在這裏創建類方法,這不是你想要的。 2)創建* every *類方法'self'的第一個參數。如果你想要靜態方法,可以使用'@ staticmethd'裝飾器,或者更好的是使用普通函數! –