• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

series = []의 할당과 참조에 대해서

22.06.03 16:13 작성 조회수 125

0

안녕하세요 강의자님.

 

def closure_ex2():

    cnt = 0

    total = 0

    def averager(v):

        cnt += 1

위에서  아래 함수의 cnt가 위 함수의 cnt를 참조하지 못해서 에러가 발생한다고 해주셨습니다. 그런데

def closure_ex1():

    series = []

    def averager(v):

        series.append(v)

 

이 경우에 아래 함수는 위에서 할당된 series = [] 변수를 참조해서 series.append(v)를 실행할 떄는 왜 에러가 발생하지 않는 것인가요? 리스트는 immutable해서 '자유 변수'로서 기능할 수 있기 때문이라고 이해하면 될까요?

답변 1

답변을 작성해보세요.

1

안녕하세요.

위에 함수에서 += 연산자 사용과 

cnt = cnt + 1

이때 각각 바꿔서 실행해보시면 됩니다.

변수 스코프에서 참조는 가능합니다.

뤀쪼님의 프로필

뤀쪼

질문자

2022.06.08

감사합니다.