다음 코드가 있습니다.
num1 = 10
someBoolValue = True
someBoolValue
가 True
인 경우 num1
의 값을 20
으로 설정해야합니다. 그렇지 않으면 아무것도하지 않습니다. 그래서 여기 내 코드가 있습니다.
num1 = 20 if someBoolValue else num1
... else num1
부분을 피할 수있는 방법이 있습니까? 에 상응하는
if someBoolValue:
num1 = 20
다음과 같이 ... else pass
로 바꾸려고했습니다. num1 = 20 if someBoolValue else pass
. 내가 얻은 것은 구문 오류뿐입니다. 또한 ... else num1
부분을 생략 할 수 없습니다.
해결 방법
파이썬에서는 이것이 가능하지 않다고 생각합니다. 실제로하려는 것이 아마도 다음과 같이 확장되기 때문입니다.
num1 = 20 if someBoolValue else num1
else num1
을 제외하면 할당이 실제로 무언가를 반환해야한다고 확신하기 때문에 구문 오류가 발생합니다.
다른 사람들이 이미 언급했듯이이 작업을 수행 할 수는 있지만 다음 번에 해당 코드를 읽을 때 혼란스러워 질 수 있기 때문에 좋지 않습니다.
if someBoolValue: num1=20
나는 똑같은 이유로 num1 = someBoolValue 및 20 또는 num1
의 열렬한 팬이 아닙니다. 그 라인이하는 일에 대해 실제로 두 번 생각해야합니다.
원하는 것을 실제로 달성하는 가장 좋은 방법은 원래 버전입니다.
if someBoolValue:
num1 = 20
그게 최고의 버전 인 이유는 당신이하고 싶은 일이 매우 분명하고 자신을 혼동하지 않거나 다른 사람이 나중에 해당 코드와 접촉 할 것이기 때문입니다.
또한 부수적으로 num1 = 20 if someBoolValue
는 유효한 Ruby 코드입니다. Ruby는 약간 다르게 작동하기 때문입니다.
참조 페이지 https://stackoverflow.com/questions/7872838
'파이썬' 카테고리의 다른 글
파이썬 클래스 내 파이썬 메인 호출 (0) | 2020.09.27 |
---|---|
파이썬 비 차단 Redis Pubsub가 가능합니까? (0) | 2020.09.27 |
파이썬 utf8 codec can't decode byte 0x96 in python (0) | 2020.09.27 |
파이썬 PIL에서 생성 한 이미지를 브라우저로 보내는 방법은 무엇입니까? (0) | 2020.09.27 |
파이썬 Find free disk space in python on OS/X (0) | 2020.09.27 |
댓글