개체 목록이 있습니다 (게임용). 목록 자체를 개체로 만들고 싶습니다.Python에서 목록 개체 만들기
class card (object):
def __init__ (self,suit,value):
self.suit = suit
self.value = value
def cardpointvalue(self):
#not relevant, basically says if card is this return this value for it
# there is also a __str__ function and a ___repr___ function, don't think
# they are important
그래서 내 카드 개체입니다, 나는 또한 내가하는 데 문제가 어디 손 개체가 :
첫 번째 목적은 카드입니다.
class hand (object):
def __init__ (self,list_cards):
self.list_cards = list_cards
def hand_value (self):
for i in list:
handpointvalue += (i.cardpointvalue())
return handpointvalue
내 메인()에서 문제가있는 곳입니다.
나는 각 카드를 덱에서 카드 개체로 만드는 목록이 있습니다. 나는 list1과 list2라는 사람의 손에 그것들을 전달한다. (각 플레이어마다, list1 만 다루기로한다.)
일단 각 플레이어의 카드를 자신의 목록에 합격하면. 나는 그 손 객체에 목록을 만들고 그 위에 handpointvalue
함수를 실행하려고합니다. 나는 문제가 어디
for i in range(10):
one_card = card_deck.pop(0) #each card is an object at this point
list1.append(one_card)
print (list1) #just testing, get a list of each card object
이다. 나는 여러 가지를 시도했다. 가장 최근의 것 :
hand(list1)
print (list1.handpointvalue())
왜 이것이 작동하지 않습니까? 이 객체 목록을 객체 자체로 만드는 방법은 무엇입니까?
오른쪽에 handpointvalue init을해야하고, 내가 아는 : 설명을 감안할 때
이 내가 당신이하려는 생각입니다 그 목록은 결코 사용되어서는 안됩니다. 사실 그것은 단지 이것을 위해서였습니다. 그래서 목록을 반복하기 시작하기 전에 handpointvalue = 0을 만들어야합니다 (손이라고 부름)? – user1887945하지만 그건 내가 가진 문제가 아닙니다. 무슨 일이 일어나고있는 건 객체가 반복 될 수 없다는 타입 오류가 발생했습니다. – user1887945
"Object not Iterable"오류는'__iter __()'메소드를 구현하지 않는 객체를 반복하려고한다는 것을 의미합니다. 예를 들어'for x in 10'은 정수가 구현하지 않기 때문에 오류를 발생시킵니다. 반면에'for x in range (10)'은 목록이 반복 가능하기 때문에 잘 동작합니다 ('__iter __()'구현). http://docs.python.org/2/library/stdtypes.html#iterator-types –