파이썬의 모든 것은 객체로 볼 수 있습니다. 각 객체에는 고유한 ID, 유형 및 값이 있습니다.
- id: 객체가 생성되면 해당 ID는 변경되지 않습니다. 여기서 id는 실제로 메모리에 있는 객체의 주소입니다. id()를 사용하여 메모리에 있는 객체의 주소를 확인할 수 있습니다.
- type: id와 마찬가지로 객체가 생성되면 유형을 변경할 수 없습니다.
- value: 객체의 값은 가변적입니다. . 값 값이 변경을 지원하는지 여부에 따라 다릅니다.
python 비디오 튜토리얼
일반적인 불변 객체(불변 객체):
번호: int, float, complexstring- tuple
- Frozenset: 또 다른 집합의 종류
- 예를 통해 경험해 보자
>>> x=1 >>> y=x >>> id(x)==id(y) True >>> id(1)==id(y) True
여기서 두 개의 int 객체가 생성되고 x와 y가 동일한 객체를 가리키도록 한 다음 x를 수정하려고 합니다. x+1>>>x=x+1
이때 x의 id 값은 여전히 y의 id, 1의 id와 동일합니까?
>>> x=x+1 >>> id(x)==id(y) False >>> id(x)==id(1) False >>> id(1)==id(y) True
x가 가리키는 객체는 바뀌었지만 1은 바뀌지 않았다는 것을 결과를 보면 어렵지 않게 알 수 있습니다. 이는 불변 객체입니다. 불변 객체의 경우 일단 생성되면 변경할 수 없습니다.
참고: 불변성은 절대적 불변성과 엄격하게 동일하지 않습니다
>>> a=([1],2,3) >>> id(a) 4338862696 >>> id(a[0]) 4338949128 >>> a[0][0]=0 >>> id(a) 4338862696 >>> id(a[0]) 4338949128
위의 예에서 a[0]의 값을 변경했지만 id 값에는 영향을 미치지 않았다는 것을 쉽게 알 수 있습니다. 불변 컨테이너 객체에 가변 객체에 대한 참조가 포함되어 있는 경우 후자가 변경되면 전자의 값도 변경되지만 컨테이너는 id 값이 변경되지 않으므로 여전히 불변 객체입니다.
가변 객체일반적인 가변 객체:
listdict- set
- 예제를 통해 비슷하게 느껴보세요
>>> c = [1,2,3] >>> b = c >>> id(b)==id(c) True
2개 만들기 객체를 나열하고 c, d가 포인트가 되도록 둡니다. 그런 다음 cc[0]=4
를 수정하려고 합니다. 이때 두 객체의 id 값이 일치하는지 확인하세요
>>> id(c)==id(b) True
수정 후에도 c, d는 여전히 동일한 객체를 가리키므로 변경 가능한 개체의 경우 값을 수정해도 해당 ID에 아무런 영향을 미치지 않는다는 결론을 내리는 것은 어렵지 않습니다. 4457707912
4:[5, 6, 10], id:4457707912다른 예를 보면
eg1
def update_list(nums_list): print(f'2 id:{id(nums_list)}') nums_list += [10] print(f'3 id:{id(nums_list)}') number_list = [5, 6] print(f'1:{number_list}, id:{id(number_list)}') update_list(number_list) print(f'4:{number_list}, id:{id(number_list)}')
결과를 보세요
1:1, id:4343768 416
2 id:4343768416 3 id:4343768448
일부 다른 글에서는 위의 eg0을 참조 전달, eg1을 값 전달이라고 합니다. 그러나 공식 문서에는 이 두 용어와 관련된 내용이 발견되지 않았거나 이 방법은 위 두 가지 중 하나가 아닙니다.
여기서 핵심은 다음과 같습니다.
변경 가능한 개체의 경우 함수 값을 변경하면 개체가 변경됩니다. 불변 개체의 경우 함수 값을 변경해도 개체에 아무런 영향이 없습니다.위 내용은 Python 가변 객체와 불변 객체에 대한 자세한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

forhandlinglargedatasetsinpython, usenumpyarraysforbetterperformance.1) numpyarraysarememory-effic andfasterfornumericaloperations.2) leveragevectorization foredtimecomplexity.4) managemoryusage withorfications data

inpython, listsusedyammoryAllocation과 함께 할당하고, whilempyarraysallocatefixedMemory.1) listsAllocatemememorythanneedInitiality.

Inpython, youcansspecthedatatypeyfelemeremodelerernspant.1) usenpynernrump.1) usenpynerp.dloatp.ploatm64, 포모 선례 전분자.

numpyissentialfornumericalcomputinginpythonduetoitsspeed, memory-efficiency 및 comperniveMathematicaticaltions

contiguousUousUousUlorAllocationScrucialForraysbecauseItAllowsOfficationAndFastElementAccess.1) ItenableSconstantTimeAccess, o (1), DuetodirectAddressCalculation.2) Itimprovesceeffiency theMultipleementFetchespercacheline.3) Itsimplififiesmomorym

slicepaythonlistisdoneusingthesyntaxlist [start : step : step] .here'showitworks : 1) startistheindexofthefirstelementtoinclude.2) stopistheindexofthefirstelemement.3) stepisincrementbetwetweentractionsoftortionsoflists

NumpyAllowsForVariousOperationsOnArrays : 1) BasicArithmeticLikeadDition, Subtraction, A 및 Division; 2) AdvancedOperationsSuchasmatrixmultiplication; 3) extrayintondsfordatamanipulation; 5) Ag

Arraysinpython, 특히 Stroughnumpyandpandas, areestentialfordataanalysis, setingspeedandefficiency


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
