파이썬 사람은 당신이 뭔가를 모르는 - 캐시의 불변의 유형을

우선, 우리는이의 다음 섹션 참조 코드를 :

[파이썬]  뷰 일반  복사

  1. >>> NUM1, NUM2 = 1,1  
  2. >>>  인쇄  NUM1은  입니다  NUM2  
  3. 참된  
  4. >>> ID (NUM1) ID (NUM2)  
  5. (3,965,416, 3,965,416)  
  6. >>> num3, num4 = 1.0, 1.0  
  7. >>>  인쇄  num3은  입니다  num4  
  8. 그릇된  
  9. >>> ID (num3) ID (num4)  
  10. (22416168, 22416184) </ SPAN>  


       우리는 볼 수 NUM1 NUM2의 값은 1 , 그 메모리 어드레스가 동일하며 num3 num4 값 또한 1.0 만, 그 메모리 어드레스는 다르다. 이유는 무엇입니까?

       에서 파이썬 , 문자열과 정수 객체는 불변 ( 불변 ) 형, 따라서 파이썬은 그들에게 매우 효율적인 캐시에게있을 것입니다 . 이러한 처리는 메커니즘 향상시킬 수 있습니다 파이썬 성능을. 따라서, 우리는 아래의 예를 참조 STR1 STR2을 동일한 메모리 어드레스를 가리키는 :

[파이썬]  뷰 일반  복사

  1. >>> STR1, STR2 = 'A', 'A'  
  2. >>>  인쇄  str1과는  이다  STR2  
  3. 참된  
  4. >>> ID (STR1) ID (STR2)  
  5. (22171104, 22171104) </ SPAN>  


       음, 모든 정수와 문자열이 아닌 파이썬은 우리가 그것을 버퍼 도움이 될 것입니다? 대답은 없습니다 . 우리가 배울 수있는 시간이 영어의 모든 단어지만, 고주파 단어 만 선택 번호를 기억 할 필요가 없습니다. 파이썬은 또한 전략을 채택한다. 우리는 아래의 예에서 볼 수있는, 모든 정수와 문자열을 파이썬이 우리에게 캐시 도움이 될 것입니다 :

[파이썬]  뷰 일반  복사

  1. >>> num5, num6 = 300, 300  
  2. >>>  인쇄  num5은  입니다  num6  
  3. 그릇된  
  4. >>> ID (num5) ID (num6)  
  5. (24972028, 24971416) </ SPAN>  

[파이썬]  뷰 일반  복사

  1. >>> STR3, STR4 = 'ABC', 'ABC'  
  2. >>>  인쇄  STR3은  입니다  STR4  
  3. 그릇된  
  4. >>> ID (STR3) ID (STR4)  
  5. (29674688, 29674656) </ SPAN>  

        파이썬은 얼마나 많은 캐시를 우리에게 도움이 될 수 있는가? Python2.3 간단한 정수 버퍼 영역 (1100)은 , Python2.5.4 간단한 정수 적어도 캐시 이후 범위 (-5,256) . 모든 짧은 문자는 완충 지대도 있습니다.

 

       간단한 정수 및 단일 문자를 캐시 할 수 있기 때문에, 튜플 (의 불변의 유형과 동일한 튜플 ) 또한 그것을 캐시 할 수 있습니까? 우리의 다음 세트가 계속 테스트를 :

1. >>> tuple1, tuple2 = (1), (1)은   
2. >>> 인쇄 tuple1는 tuple2이다   
3.False   
4. >>> ID (tuple1) ID (tuple2)   
5. (24899856, 24756080 )   
6. >>> tuple3, tuple4 = (1,2), (1,2)   
7. >>> 인쇄 tuple3는 tuple4이다   
8.False   
9. >>> ID (tuple3) ID (tuple4)   
(10) ( 29705880, 24881752) </ SPAN> 

       ( 추신 : tuple1 tuple2 문으로 정의 할 경우 (1) 상기 인해 파이썬 기호 () 괄호에 의해 패킷 연산자 오버로딩 단지 튜플, () 첫 번째 단일 소자 패키지 대신 튜플, 그룹화 조작으로 간주)

       우리는 튜플 메커니즘을 캐싱 보여 주었다 보지 못했다. 이유는 무엇입니까? 메커니즘을 캐싱하는 것은 문제 빠른 데이터 액세스를 해결하기 때문에, 간단한 정수 변수 및 단일 문자를 더 자주 사용됩니다,하지만 일반적인 튜플 튜플 말, 캐싱 메커니즘도 합리적입니다있다.

       물론,이 현상을 더 잘 이해하기 위해, 우리는 더 많은 것을 배우고 배울 필요가 파이썬에게 캐싱 메커니즘을.

추천

출처www.cnblogs.com/mana66ccff/p/11130163.html