Python 3의 범위 내에서 변수를 저장/복원하는 쉬운 방법이 있습니까?Python 3에서 변수를 저장/복원하는 일반적인 방법
x=4
with x=5:
... do something with x that's temporarily 5
또는 파이썬 인터프리터가 할당이 (왼쪽을 구현하는 것이 저장됩니다 아주 쉽게 될 것 같다
이with os.environ["FOO"] = "BAR":
... do something here
, 오른쪽은 다음과 같습니다 예를 들어
__enter__
에서 실행, __exit__
에 복원 됨)
또는 적어도 일부 라이브러리 또는 기타.
임시 변수를 사용하려면 try/finally 블록이 필요하며 본질적으로 안전하지 않으며 런타임 오류가 발생하기 쉽습니다. 비교에 의해 "unpythonic"인 것처럼 보입니다.
try:
save = os.environ["FOO"]
os.environ["FOO"] = "BAR"
... do something here
finally:
os.environ["FOO"] = save
왜 이런 식으로합니까? 그것은 unpythonic 것 및 코드 가독성을 줄입니다. 왜 임시 변수를 사용하지 않는가? – ubadub
왜 기능이 ...? 어쨌든 보통 유지 보수가 가능한 코드를 만듭니다. – deceze
위의 두 가지 문제에 모두 답변하고 제안 된 구문이 훨씬 더 "파이썬 적이"라는 이유를 설명했습니다. 읽기 쉽고 버그가 발생하지 않았습니다. 또한 "기능"은 많은 경우 사용할 수 없습니다. (ENV 수정은 표준적인 예제이지만 다른 많은 것들이 있습니다!) –