변수 1.python는 무엇인가
- 파이썬 변수 실제로 포인터 및 자바 통상 용기 변수 값에 직접 증착된다.
나 때문에 같은 주소에 A, B 지점의를 변경 한 이유는, 납 함량은 또한에 포인트가 변화 b를 변경 한 객체의 메모리 주소를 얻기 위해 ID는 () 지적에, 그것은 개체의 다음 주소 인 경우 자체 B는 동일하지 않을 것이다.
. (1) A = [. 1,2 ,. 3 ] (2) B = . 3 # a와 b는 정수 포인터는 동일한 주소를 가리 키하는 동시에 수정 B를 수정 . 4 인쇄 (ID (a), ID (b)) # 54,866,344 54,866,344을 . (5) 인쇄 (A IS B) # 참 . 6 . 7 a.append (2 ) .도 8 출력 (A, B) # [. 1, 2, 3 ,. 2]. 1, 2, 3 ,. 2]
참고 : 파이썬 변수 생성 단계
- 먼저 객체를 생성 [1,2,3,4] 주소를 할당 : 19,333,544을
- 점이이 19,333,544를 해결하기 위해 확인
- 그런 다음 개체를 만드는 [1,2,3,4] 할당 주소 : 193 335 480
- 받는 사람 193 335 480 주소 점 b를 보자
- C 지점과 지점이 동일한를 해결 할 수 있도록
다른 오브젝트 C와 동일한 대상에 대한 포인트 A와 B 지점
(1) A = [1, 2, 3, 4 ] (2) B = [1, 2, 3, 4 ] (3) C = 4 인쇄 (ID (a), ID (b), ID (c)) # 19,333,544 19,333,480 19,333,544
요점 :
작은 정수와 동일한 주소에 대한 모든 지점을 설립 문자의 작은 문자열의 경우, 다른 하나는 다른 주소입니다
(1) A = 1 (2) B = 1 (3) C = 4 인쇄 (ID (a), ID (b), ID (c)) # 1399769008 1399769008 1399769008 5 6 A = " ABC " (7) B = " ABC " 8 C = 9 인쇄 (ID (a), ID (b), ID (c)) # 24,048,032 24,048,032 24,048,032
(2) 사이의 차이이다 ==
- == 두 값의 비교와 동일한 목적은
- 이다 두 개체 주소의 비교가 같은지, ID 비교기 (a) == ID (b)
(1) A = [1, 2, 3, 4 ] (2) B = [1, 2, 3, 4 ] (3) C = 4 인쇄 (ID (a), ID (b), ID (c)) # 19,333,544 19,333,480 19,333,544 (5) 잉크는 (A는 이고 B, A는 이고 C가, B가 인 c) # 거짓 참 거짓 6 잉크 (A ==의 B, A == C, B == c) # 참 참 참은
3.del 제표 및 쓰레기 수거
- CPython의 참조 카운팅을 사용 가비지 수집 알고리즘은 방법입니다
메모리의 개수가 2, 마지막 프로그램의 끝이 삭제 될 델 상기 기준 카운트 값은 3이며,이 시간에 점을 지적하면서 제 1 기준을 확립 한 후, B, C하자
1 등급 A : 2 DEF __init__ (자기 이름) 3 self.name = 이름 4 인쇄 ( " INIT : " + 이름) 5 6 DEF __del__ (자기) 7 인쇄 ( " 델 : " + self.name) 8 9 10 A = A ( " " ) # INIT하십시오 11 B = 12 C = 13 델 14 c.name = " C " (15) 이 전단 (b.name) C # 16 b.name = ' B ' . 17 인쇄 (b.name) B 번호
최종 성능 델 : B
4. 고전적인 실수