string s = null;
var other = s ?? "some default value";
파이썬에 상응하는 것이 있습니까?
나는 내가 할 수 있다는 것을 안다.
s = None
other = s if s else "some default value"
하지만 더 짧은 방법이 있습니까 ( s
를 반복 할 필요가없는 곳)?
해결 방법
other = s or "some default value"
좋습니다. or
연산자가 어떻게 작동하는지 명확히해야합니다. 부울 연산자이므로 부울 컨텍스트에서 작동합니다. 값이 부울이 아닌 경우 연산자를 위해 부울로 변환됩니다.
or
연산자는 True
또는 False
만 반환하지 않습니다. 대신 첫 번째 피연산자가 true로 평가되면 첫 번째 피연산자를 반환하고 첫 번째 피연산자가 false로 평가되면 두 번째 피연산자를 반환합니다.
이 경우 x 또는 y
표현식은 True
인 경우 x
를 반환하거나 부울로 변환 될 때 true로 평가됩니다. 그렇지 않으면 y
를 반환합니다. 대부분의 경우 이것은 C?의 null-coalescing 연산자와 동일한 목적으로 사용되지만 다음 사항에 유의하십시오.
42 or "something" # returns 42
0 or "something" # returns "something"
None or "something" # returns "something"
False or "something" # returns "something"
"" or "something" # returns "something"
변수 s
를 사용하여 클래스의 인스턴스에 대한 참조 또는 None
(클래스가 멤버를 정의하지 않는 경우 __ nonzero__ ()
및 __ len __ ()
), null 통합 연산자와 동일한 의미 체계를 사용하는 것이 안전합니다.
사실, 파이썬의 이러한 부작용을 갖는 것이 유용 할 수도 있습니다. 어떤 값이 false로 평가되는지 알고 있으므로이를 사용하여 특별히 None
을 사용하지 않고 기본값을 트리거 할 수 있습니다 (예 : 오류 개체).
참조 페이지 https://stackoverflow.com/questions/4978738
'파이썬' 카테고리의 다른 글
파이썬 Pytorch 텐서에서 numpy 배열로 (0) | 2020.10.12 |
---|---|
파이썬 Python string.join(list) on object array rather than string array (0) | 2020.10.12 |
파이썬 sum과 같은 Python 요소 별 튜플 연산 (0) | 2020.10.12 |
파이썬 OS Python 버전이 3.5 인 경우 pipenv Python 3.6 프로젝트를 설정하는 방법은 무엇입니까? (0) | 2020.10.12 |
파이썬 Python-목록을 함수 매개 변수로 사용 (0) | 2020.10.12 |
댓글