osh1795   2년 전

제가 이 문제를 풀고 다른 풀이도 궁금하여 공부하던 중에 궁금한게 생겨서 질문합니다.

코드#1을 보면 def하고 visited 리스트를 불러오거나 global하지 않았음에도 사용이 가능한 이유가 궁금합니다.

그 아래는 파라미터에 넣지도 않고, global을 사용하지도 않았을 때 오류가 발생한 코드입니다.

코드#2에서는 리스트나 str, int가 불러와지지 않고 오류가 발생한 이유가 궁금합니다.

seungwuk98   2년 전

원리를 정확하게 아는 것은 아니지만, 파이썬은 전역변수에 대한 접근 방식이 조금 다른 것 정도로만 알고있습니다.

일단 제가 알고 있는 사실은 다음과 같습니다.

1. 변수 '접근'은 global 없이 가능하다.

2. iterable하면서 수정 가능한 객체는 global 없이 수정이 가능하다.

3. 일반 변수는 global 없이 수정이 불가능하다.

seungwuk98   2년 전

생각해보니 2번에서 꼭 iterable할 필요 없이, 객체의 값은 수정이 가능할 겁니다.

osh1795   2년 전

다른 알림이라 헷갈려서 늦게 확인했네용...

말씀해주신 내용이 잘 이해가 되지않아서 혹시 다시 한번 더 설명해주실 수 있나요??

리스트의 경우는 global없이 수정이 가능하다는 얘기인가요??

seungwuk98   2년 전

넵. 리스트, 셋, 딕셔너리, 그리고 스스로 정의한 객체 등등은 전역변수 지정하지 않아도 변경 가능합니다.

osh1795   2년 전

감사합니다!! 덕분에 궁금했던거 해결했습니다.

댓글을 작성하려면 로그인해야 합니다.