2017-03-07 1 views
0

왜 스칼라 유형 매개 변수 값이 인쇄 가능하지 않은지 아는 사람 있습니까? 나는 다음과 같은 코드가 있습니다 :스칼라 값 인쇄

dtab = { 
('seattle', 'new-york') : 2.5, 
('seattle', 'chicago') : 1.7, 
('seattle', 'topeka') : 1.8, 
('san-diego','new-york'): 2.5, 
('san-diego','chicago') : 1.8, 
('san-diego','topeka') : 1.4, 
} 

model.d = Param(model.i, model.j, initialize=dtab, doc='Distance in thousands of miles') 

model.f = Param(initialize=90, doc='Freight in dollars per case per thousand miles') 

print model.d.values() 
print model.f.values() 

내가 그것을 실행하면 내가 다음과 같은 결과를 얻을 :

[1.4, 1.8, 2.5, 2.5, 1.8, 1.7] 
[<pyomo.core.base.param.SimpleParam object at 0x000000000B018438>] 

내가 정말 디버깅을 위해 스칼라를 인쇄 할 수 있어야합니다 누구의 도움을 할 수 있습니다.

답변

0

이것은 불변의 색인화 된 Params에 대해 발생하는 메모리 최적화 때문입니다. mutable=True을 사용하여 인덱싱 된 Param을 초기화하면 싱글 톤 케이스와 동일한 동작을 보게됩니다. Param의 가치에 접근하는 방법은 Pyomo가 제공하는 value 함수를 사용하는 것입니다. 예 :

print([value(v) for v in model.d.values()]) 
print([value(v) for v in model.f.values()])