본문 바로가기
파이썬

파이썬 AttributeError: can't set attribute in python

by º기록 2020. 12. 18.
반응형

내 코드는 다음과 같습니다.

N = namedtuple("N", ['ind', 'set', 'v'])
def solve()
    items=[]
    stack=[]
    R = set(range(0,8))
    for i in range(0,8):
        items.append(N(i,R,8))      
        stack.append(N(0,R-set(range(0,1)),i))
    while(len(stack)>0): 
        node = stack.pop()
        print node
        print items[node.ind]   
        items[node.ind].v = node.v

마지막 줄에서 원하는대로 items [node.ind] .v 값을 node.v 로 설정할 수 없으며 오류가 발생합니다.

"AttributeError: can't set attribute"

나는 무엇이 잘못되었는지 모르겠지만 node.v + = 1 과 같은 문을 사용하면 동일한 오류가 표시되므로 구문을 기반으로해야합니다. 저는 Python을 처음 사용하므로 위의 변경을 가능하게하는 방법을 제안하십시오.

 

해결 방법

 

items[node.ind] = items[node.ind]._replace(v=node.v)

(참고 : _replace 함수의 선행 밑줄 때문에이 솔루션을 사용하지 마십시오. 특히 namedtuple의 경우 일부 함수에는 "비공개"임을 나타 내기위한 것이 아닌 선행 밑줄이 있습니다.)

 

참조 페이지 https://stackoverflow.com/questions/22562425

 

 

반응형

댓글