List Comprehensions: A Source of Confusing Scoping
Python 2의 List Comprehension의 한 가지 독특한 측면은 변수 범위 지정과의 특이한 상호 작용입니다. 특히 목록 이해의 루프 제어 변수는 주변 범위로 "누출"되어 잠재적인 오류와 혼란을 초래합니다.
다음 코드를 고려하세요.
x = "original value" squares = [x**2 for x in range(5)] print(x) # Prints 4 in Python 2!
Python 2에서 이 코드는 코드는 예기치 않게 "원래 값" 대신 4를 인쇄합니다. 이는 리스트 컴프리헨션에 사용된 루프 제어 변수 x가 컴프리헨션 외부에 정의된 x를 일시적으로 숨기기 때문입니다. 이러한 섀도잉은 이해가 완료된 후에도 지속됩니다.
이러한 동작은 미묘하고 디버그하기 어려운 오류를 유발할 수 있으므로 좌절감을 느끼게 하는 심각한 원인이 될 수 있습니다. 더욱이 이는 일반적으로 목록 이해와 관련된 편의성과 단순성을 훼손합니다.
그러나 Python 3에서는 이 동작이 해결되었습니다. 목록 이해는 더 이상 루프 제어 변수를 주변 범위로 유출하지 않습니다. 이는 항상 이런 방식으로 동작했던 생성기 표현식과 일치하게 합니다.
Python의 창시자인 Guido van Rossum에 따르면, 목록 내포의 원래 누출된 구현은 최적화를 위해 만들어진 "의도적인 절충"이었습니다. 그들의 성과. 그러나 Python 3에서는 성능 향상으로 인해 이러한 절충안이 불필요한 것으로 간주되었습니다.
Python 3에서 이러한 누수 동작이 제거되면서 목록 이해의 신뢰성과 일관성이 크게 향상되었습니다. 의도하지 않은 변수 섀도잉 가능성을 제거함으로써 이제 프로그래머는 더욱 안심하고 사용할 수 있습니다.
위 내용은 Python 2의 List Comprehension 범위가 Python 3과 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

드림위버 CS6
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는