오늘 자물쇠를 가지고 노는 동안, 나는 다음 상황을 알았다. 잠글 필요가있는 다음 코드가 있다고 가정하십시오. 획득과 이전 방법을 사용하고 방출 :구조가있는 파이썬 문법이 충분히 융통성이 없음
lock=Lock()
lock.acquire()
a=foo()
if condition:
doSomething()
lock.release()
else:
lock.release()
doSomethingElse()
이 코드 조각은 with
구조를 사용하여 구현 할 수 없습니다
lock=Lock()
with lock:
a=foo()
if condition:
doSomething()
else: #This is wrong grammar here.
doSomethingElse()
아니면 할 수 있습니까? 제가 틀렸다면 제발 정정 해주세요.
'with' 문과 함께 'else'가 없습니다. 'else'를'if' 문과 같은 들여 쓰기로 들여 쓰기하십시오. – Evert
네,하지만 그건 사실 내가 갖고있는 것보다 더 오랜 시간 동안 자물쇠를 잡아야합니다. 첫 번째 방법을 사용하면 원하는대로 풀어 낼 수 있습니다. –
첫 번째 예 : 결함이있는 경우 : '조건'이 '거짓'인 경우 절대로 잠금을 해제하지 마십시오. – Evert