2014-11-24 3 views
0

Yatzy에서 플레이어 개체로 채워진 프로토콜이라는 목록이 있습니다. 모든 객체는 순간 (예 : 풀 하우스)과 값 (예 : 20)을 포함하는 사전입니다.프로토콜 인쇄 (dicts 목록)

프로토콜을 인쇄하고 싶지만 코드를 작성하는 방법을 모르겠다.

나는 이런 식으로 뭔가를보고 싶습니다 플레이어 이름
이여은 "사람"순간

등의 모든 플레이어의 포인트에 대해 하나 개의 라인

한 줄을.

I've가 momentlist 등등 모든 순간 (사람, 조로 등)로 목록을 =이 지금까지 (protokoll = 프로토콜을 시도 :

def Utskrift(protokoll, momentlist): 

    for key in momentlist: 
     print ("%-20s" % key) 
     for deltagare in protokoll: 
      print (deltagare.protokoll[key], "\t",) 

가 작동하지 않습니다, 오류 메시지에 대해 뭔가를 말한다 . 나는 모든 선수를 만들기 위해 사용하는 클래스 Spelare,

오류 메시지 :

Traceback (most recent call last): 
    File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 160, in <module> 
    meny() 
    File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 139, in meny 
    Utskrift(protokoll, momentlist) 
    File "/Users/Mans/Desktop/P-Uppgift/Yatzy_huvudprogram.py", line 93, in Utskrift 
    print (deltagare.protokoll[key], "\t",) 
AttributeError: 'Spelare' object has no attribute 'protokoll' 

건입니다 내가

를 사용할 때

protokoll의 플레이어

인쇄 (플레이어) 오류없이 작동하지만 (원하는대로 인쇄되지는 않았지만).

Uskrift 기능이 올바르게 보이나요?

+2

_ "오류 메시지가 Spelare 클래스에 대해 뭔가를 말합니다."_. 아마도 Spelare 수업에 문제가 있다는 뜻입니다. 클래스 나 오류가 어떻게 생겼는지 알지 못하기 때문에 우리는 그 이상의 충고를 할 수 없습니다. – Kevin

+0

도와 주셔서 감사합니다. Ive가 정보를 업데이트했습니다. 내가 간단한 인쇄 기능을 사용하면 오류없이 작동한다는 것입니다. 내 기능 Utskrift에 대해 어떻게 생각하십니까? –

+0

'Spelare' 클래스에'self.protokoll' 속성이 없다면 에러가 발생할 수 있습니다. Spelare 클래스에는 어떤 속성이 있습니까? – Kevin

답변

0
 print (deltagare.protokoll[key], "\t",) 

Spelare을 돕는

감사는 protokoll 속성이 없습니다. Spelare의 OrderedDict 개체에 액세스하려는 경우 이름을 moment으로 사용해야합니다.

+0

달콤한 케빈, 정말 고마워! 한 가지 마지막으로, 나는 제안 된 변경을했고, 다른 행에 키와 값을 인쇄하고 있습니다. 동일한 행에 키와 값을 인쇄하려면 어떻게해야하는지 알고 있습니까? ? –

+0

첫 번째'print'를 삭제하고 두 번째 것을'print ("% -20s"% key, deltagare.protokoll [key], "\ t")로 수정하십시오. – Kevin

+0

예! 정말 고마워요. 많은 시간을 할애 해 주셔서 정말 도움이되었습니다. 감사합니다. 좋은 하루 되세요! –