Python 문자열의 가변 특성 공개: " " b에 대한 탐구
Python 문자열은 본질적으로 문자열이라는 오랜 믿음에도 불구하고 불변의 독특한 관찰이 이 개념에 도전합니다. a " " b 구문을 사용하여 문자열을 연결하면 문자열이 변경되는 것처럼 보입니다. 이 수수께끼 같은 동작을 조사해 보겠습니다.
코드 조사
다음 코드 조각을 고려하세요.
<code class="python">a = "Dog" b = "eats" c = "treats" print a, b, c # Dog eats treats print a + " " + b + " " + c # Dog eats treats print a # Dog a = a + " " + b + " " + c print a # Dog eats treats # !!!</code>
이상 현상 이해
우리가 이해한 바에 따르면 Python 문자열은 불변이므로 내용을 직접 조작하는 것이 금지됩니다. 그러나 위의 코드는 그렇지 않은 경우를 보여줍니다. a = a " " b " " c 줄을 실행하면 a가 가리키는 문자열이 수정된 것으로 나타나 혼란을 야기합니다.
미스터리 풀기
이 동작을 이해하는 열쇠는 다음과 같습니다. Python 문자열 자체는 변경 불가능한 상태로 유지됩니다. 대신, 변수 a는 연결된 내용을 포함하는 새 문자열 객체에 재할당됩니다.
코드의 첫 번째 부분에서 a는 처음에 문자열 "Dog"를 가리킵니다. " " b를 사용하여 문자열을 연결하면 연결 결과(이 경우 "Dog eats treats")를 포함하는 새 문자열이 메모리에 생성됩니다. 그러나 a는 여전히 원래 "Dog" 문자열을 가리킵니다.
a " " b " " c 값을 a에 할당하면 연결된 결과 "Dog eats treats"를 포함하는 새 문자열 개체가 생성됩니다. ", 그리고 이제 a는 이 새로운 문자열을 가리킵니다. 원래 "Dog" 문자열은 변경되지 않고 여전히 메모리에서 액세스할 수 있습니다.
따라서 이 컨텍스트에서 문자열의 명백한 변형은 문자열 수정이 아니라 문자열을 가리키는 변수의 재할당의 결과입니다. 그 자체. Python 문자열은 불변성을 유지하면서 문자열을 가리키는 참조를 변경할 수 있는 유연성을 제공합니다.
위 내용은 \'a \' \' b\'를 사용할 때 Python 문자열이 변경 가능한 것으로 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Pythonusesahybridmodelofilationandlostretation : 1) ThePyThoninterPretreCeterCompileSsourcodeIntOplatform-IndependentBecode.

Pythonisbothingretedandcompiled.1) 1) it 'scompiledtobytecodeforportabilityacrossplatforms.2) thebytecodeisthentenningreted, withfordiNamictyTeNgreted, WhithItmayBowerShiledlanguges.

forloopsareusedwhendumberofitessiskNowninadvance, whilewhiloopsareusedwhentheationsdepernationsorarrays.2) whiloopsureatableforscenarioScontiLaspecOndCond

pythonisnotpurelynlogreted; itusesahybrideprophorfbyodecodecompilationandruntime -INGRETATION.1) pythoncompilessourcecodeintobytecode, thepythonVirtualMachine (pvm)

ToconcatenatelistsinpythonwithesameElements, 사용 : 1) OperatorTokeEpduplicates, 2) asettoremovedUplicates, or3) listComperensionForControlOverDuplicates, 각 methodHasDifferentPerferformanCeanDorderImpestications.

PythonisancerpretedLanguage, 비판적 요소를 제시하는 PytherfaceLockelimitationsIncriticalApplications.1) 해석 된 언어와 같은 thePeedBackandbackandrapidProtoTyping.2) CompilledlanguagesLikec/C transformt 해석

useforloopswhhenmerfiterationsiskNownInAdvance 및 WhileLoopSweHeniTesslationsDepoyConditionismet whilEroopsSuitsCenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTheLoopScenarioswhereTherInatismet, 유용한 광고 인 푸트 gorit


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

Dreamweaver Mac版
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경