-1
내 프로그램에 메사를 사용하고 있습니다. 내 모델 클래스를 실행하려고하지만 에이전트 클래스에서 AttributeError가 발생했습니다.Python - 메사 : 각 객체의 인스턴스 변수를 얻는 방법
class ComtrModel (Model):
""" A model with some number of Agents"""
def __init__(self,N):
self.num_agents = N
self.schedule = RandomActivation(self)
for i in range (N):
a = CommuterAgent(i)
self.schedule.add(a)
class CommuterAgent (Agent):
def __init__(self, model):
self.famsize = famsize
self.distance = distance
self.update_need = None
def step(self):
if self.distance >= 10000:
self.update_need = self.update_need()
return
def update_need (self, famsize):
if self.famsize :
self.famsize = famsize
return
prob_need()
어떻게 각 에이전트의 변수를 얻을 :
이 내 스크립트입니다? 모델이 제대로 실행되는지 확인해야합니다.
from src.ComtrModel import *
model = ComtrModel(5)
for i in range (10):
model.step()
for key, value in CommuterAgent.step(model):
print(key, value)
편집 :
지금까지이 (대화 형 세션에) 실행하려면 코드입니다 그러나 나는 또한이 같은 것을 시도
Traceback (most recent call last):
File "C:src/__init__.py", line 3, in <module>
from src.ComtrModel import *
File "C:\src\__init__.py", line 9, in <module>
for key, value in CommuterAgent.step(model):
File "C:\src\ComtrModel.py", line 40, in step
if self.distance >= 10000:
AttributeError: 'ComtrModel' object has no attribute 'distance'
반환
>>> hi_obj = hi()
>>> hi_obj.__dict__.keys()
을
하지만 단일 개체에서만 작동합니다.
* * 여기서 오류가 발생합니까? 전체 추적을 보여라. –
@DanielRoseman 전체 추적에 대한 편집 – dya
하지만 이전 질문과 정확히 같습니다. 거기에 분명히 대답했듯이, 당신은'schedule'리스트를 반복 할 필요가 있습니다. –