inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도 할 수 있다! SW강사!

Python 12강_형변환

파이썬 관련 질문 드립니다. (변수의 참조 수정 범위)

478

파란행복

작성한 질문수 4

0

age = 11

def agePrint():

    age += 1

    print(age)

agePrint()

하면 에러가 납니다. age가 함수 외부에 있으니 당연한거구요.

근데 age가 리스트면

age = [11, 12, 13]

def agePrint():

    age[0] = 15

    print(age)

agePrint()

하면 에러없이 잘 수행됩니다. 그냥 변수를 변경하면 안되지만 리스트는 왜 되는건가요?

바쁘시겠지만 답변 기다립니다.

javascript react-native python HTML/CSS

답변 4

1

제주코딩베이스캠프

그렇다면 변수라는 의미를 더 깊게 설명드리도록 할게요!

처음 답변에서 파이썬의 모든 타입은 객체라고 말씀드렸죠?
파이썬에서 변수객체를 가리키는 화살표라고 보시면 됩니다.

그래서 변수에는 '대입'한다라는 표현을 쓰지 않고 '바인딩(binding), 가리킨다'라는 표현을 씁니다.

이미 만들어진 변수에 새로운 값들을 넣어줄 때,

불변객체는 새로운 값을 새로운 메모리에 할당한 후 그 값을 변수가 가리키게(바인딩) 합니다.
반면 가변객체는 새로운 값이 들어와도 같은 메모리에서 변경해주죠.

조금 어렵죠?
아래 예제를 볼게요!

가변객체는 변경 전 후 고유주소(identity) 값이 그대로인 반면에
불변객체는 변경 전 후 고유주소 값이 바뀌었습니다.

이제 조금 이해가 되셨을까요?

1

제주코딩베이스캠프

안녕하세요 제주코딩베이스캠프입니다!

정말 좋은 질문이네요 :)

우선 list가변객체이기 때문에 함수로 접근 시 값이 변할 수 있으며
가변객체에는 list, set, dic이 있습니다.

반면 int, floot, stringtuple과 같이 불변객체이기 때문에 값이 변할 수 없으며
불변객체에는 int, float, bool, tuple, str, unicode가 있습니다.

더 깊게 설명해보자면,

python의 모든 데이터 타입은 '객체(object)'이며 이를 통해 메모리의 정보를 관리합니다.
객체에는 세가지 특성이 있으며 값(value), 유형(type), 정체성(identity)이라고 부릅니다.

예를 들어볼까요?

a = 100

100이라는 값을 변수 a에 할당했습니다.
(할당이라는 표현이 적절치는 않지만 설명을 위해 지나가도록 할게요.)

값(value)은 메모리에 기록된 내용입니다.
여기에서는 100을 의미합니다.

유형(type)은 데이터의 종류입니다.
숫자를 넣었으니 int형을 의미합니다.(type(a)를 하면 나오는 값)

정체성(identity)은 객체를 식별하기 위한 고유주소입니다.
메모리상에 위치한 주소 값이며 'id(a)'를 하면 나오는 값 입니다.

즉, 가변객체는 값을 변경할 수 있는 객체를 의미하며
불변객체는 값을 변경할 수 없는 객체를 의미합니다.

이해가 되셨나요?

더 궁금하신 점은 언제든지 질문게시판을 이용해주세요 :)

0

파란행복

네 이해됐습니다.

파이썬을 더 잘이해하는데 도움이 되었습니다.

고맙습니다.

0

파란행복

답변 감사 드립니다.

제가 질문한 사항은 이해가 되었습니다. 근데 또 다른 의문이 생겼습니다.

답변 마지막 부분에 <가변객체는 값을 변경할 수 있는 객체를 의미하며 불변객체는 값을 변경할 수 없는 객체를 의미한다>고 하셨는데...

변수가 원래 값 변경이 가능한거잖아요. 물론 이 의미가 말씀하신 의미와 다를거라고 생각은 하지만  <가변객체는 값을 변경할 수 있는 객체를 의미하며 불변객체는 값을 변경할 수 없는 객체를 의미한다>라는 말을 다시 한번 짚어주시면 정말 감사하겠습니다.

고맙습니다.

섹션5 노션링크 는 따로 없나요?

0

6

1

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

9

2

Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.

0

13

2

첨부자료 Part 4 코드 확인 부탁드리겠습니다.

0

11

2

프론트엔드 학습 수준 문의

0

22

2

질문 드립니다.

0

36

2

선생님 각 강좌마다 예시로 보여주시는 웹페이지들은 어디서

0

16

1

노션 링크

0

35

3

26년 1회 실기 해설 강의

0

39

2

노션 권한요청하였습니다 언제쯤 볼수있나요

0

33

2

AAFM CWM_LEVEL_2 Exam Questions 2026: Right Preparation Method

0

24

1

강의 내용 관련 질문드립니다~

0

32

2

퍼플렉시티 최소 결제단위 50달러로 바뀐 것 같습니다.

0

37

2

수강 연장 문의

0

30

1

SW교육안 기획 강의에서 "프로그램 운영 제안서" 자료는 어디에 있나요?

0

236

0

강의 교안 요청드립니다~

0

411

1

강의에 사용하신 노션 내용 공유 요청

0

403

1

플레이봇과 러플 교수법 자료

0

326

0

결과보고서를 어디서 다운로드 할 수 있을까요?

1

333

1

데이터전달 질문

0

470

1

소리가 작아요.

0

558

5

화면이 열리지 않네요

0

371

2

강사등록

0

955

1

안녕하세요

0

365

1