inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

파이썬 변수(2-2)

파이썬 (2-2) 같은 오브젝트 참조 관련해서 질문 드립니다.

285

jsynyesoo

작성한 질문수 1

0

m=800, n=800으로 선언을 하고 id 넣고 출력을 해도 true가 아닌 false가 뜹니다. 왜이런 건가요?

또 수업에서와 같이 m=800의 객체의 고유값을 확인했는데 수업과 다른 숫자가 출력되는 이유도 궁금합니다.

python

답변 2

0

허훈

Python 3.9.0을 사용하고 있습니다. 이게 혹시 버전이 올라가면서 변경된 건 없을까요? iPython을 열고 입력해보면 두 변수의 참조 번호가 다르게 나옵니다(아래는 실행한 결과). 실행환경은 리눅스입니다.

joshua@blackwidow:~$ ipython
Python 3.9.0 (default, Oct 17 2020, 16:52:55) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.18.1 -- An enhanced Interactive Python. Type '?' for help.


In [1]: m = 800

In [2]: n = 800

In [3]: print(id(m))
140500560747056

In [4]: print(id(n))
14050056074689

In [5]: print(id(m), id(n))
140500560747056 140500560746896

In [6]: 

그래서 a=b=c는 혹시 id가 같지 않을까 해서 아래와 같이 해봤더니 이때에는 동일하게 나오네요.

joshua@blackwidow:~$ ipython
Python 3.9.0 (default, Oct 17 2020, 16:52:55) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.18.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: a = b = c = 700

In [2]: a is b
Out[2]: True

In [3]: a is c
Out[3]: True

In [4]: b is c
Out[4]: True

In [5]: d = 700

In [6]: a is d
Out[6]: False

In [7]: print('a: '+str(id(a)), 'b: '+str(id(b)), 'c: '+str(id(c)), 'd: '+str(id(d)), sep='\n')
a: 139701311787120
b: 139701311787120
c: 139701311787120
d: 139701311539856

In [8]: a = 701

In [9]: print('a: '+str(id(a)), 'b: '+str(id(b)), 'c: '+str(id(c)), 'd: '+str(id(d)), sep='\n')
a: 139701310301872
b: 139701311787120
c: 139701311787120
d: 139701311539856

0

새콤한 비버

안녕하세요.

혹시 m과 n의 id를 출력하기 전에 중간에 값이 변경되었는지 확인바랍니다.

초기에 같은 값으로 변수를 선언해도 중간에 값이 변경되면 id 값이 변합니다.

추가적으로, 객체의 고유값 id는 새 파일을 작성해서 출력할때마다 계속 변경됩니다.

그 이유는 id는 랜덤하게 지정되기 때문입니다.

감사합니다.

인스턴스 변수 문의

0

21

1

챕터 03_04 (튜플) 교육자료

0

23

2

Package(3-1) Sub 폴더 자료

0

31

1

아톰 출력 안됨

0

56

2

강의자료 메일 발송 요청 드립니다.

0

68

1

강의자료 메일로 보내주실 수 있으실까요?

1

45

0

Iterable 요소는 리스트로 작성해야하는 것 맞나요?

1

71

2

강의자료 부탁드립니다

0

53

2

if Flase: print('Bad')

0

55

1

=와 == 의 차이

0

73

1

functions 함수 섭들을려고하는데요

0

62

1

강의자료 부타드리겠습니다!

0

54

0

VSCODE에 VIEW에서 SELECTED INTERPRETER조회가 안됩니다.

0

63

1

강의자료 부탁드립니다.

0

47

0

dict의 Key를 바꾸는 방법

0

59

1

강의자료부탁드립니다

0

56

1

run withount 디버깅 및 F5+ctrl이 안먹혀요

0

57

1

강의 자료와 예정 다운로드

0

69

2

객체지향 vs 함수형

0

53

1

어렵네요 설정도

0

61

1

설정이 잘 된건지

0

46

1

맥 os vscode 설정 - python interpreter select

0

94

1

강의자료 부탁드립니다. mytoughgirl@naver.com 입니다.

0

39

1

vscode로 수업 진행한 영상은 없는건가요?

0

51

2