나는 다음과 같은 경우 :파이썬 : 순서 및 실행
if a(my_var) and b(my_var):
do something
나는 a()
가 True
경우 b()
만 평가되어 있다고 가정 할 수 있습니까? 또는 먼저 b()
을 수행 할 수 있습니까?
b()
을 평가하면 a()
이 False
일 때 예외가 발생합니다. a(my_var)
, 네 True
경우
나는 다음과 같은 경우 :파이썬 : 순서 및 실행
if a(my_var) and b(my_var):
do something
나는 a()
가 True
경우 b()
만 평가되어 있다고 가정 할 수 있습니까? 또는 먼저 b()
을 수행 할 수 있습니까?
b()
을 평가하면 a()
이 False
일 때 예외가 발생합니다. a(my_var)
, 네 True
경우
: a(my_var)
false를 반환하는 경우 그래서 그래, 다음 기능 b
가 호출되지 않습니다
>>> help('and')
Boolean operations
******************
or_test ::= and_test | or_test "or" and_test
and_test ::= not_test | and_test "and" not_test
not_test ::= comparison | "not" not_test
...
The expression ``x and y`` first evaluates *x*; if *x* is false, its
value is returned; otherwise, *y* is evaluated and the resulting value
is returned.
...
.
b()
에만 평가됩니다. a(my_var)
이 거짓이면 and
연산자가 단락됩니다. boolean operators documentation 가입일
:
는 는발현
x and y
제x
를 평가하여;x
이 false이면 해당 값이 반환됩니다. 그렇지 않으면y
이 평가되고 결과 값이 반환됩니다. 전화했을 때
당신은 뭔가를 인쇄하는 기능이 자신을 테스트 할 수 있습니다
>>> noisy(0) and noisy('whatever')
Called, returning 0
0
>>> noisy('') and noisy('whatever')
Called, returning ''
''
>>> noisy({}) and noisy('whatever')
Called, returning {}
{}
사용자 정의 클래스가 구현할 수 :
>>> def noisy(retval):
... print "Called, returning {!r}".format(retval)
... return retval
...
>>> noisy(True) and noisy('whatever')
Called, returning True
Called, returning 'whatever'
'whatever'
>>> noisy(False) and noisy('whatever')
Called, returning False
False
파이썬은 거짓 빈 용기 및 숫자 0 값을 consideres __nonzero__
hook 같은 테스트에 대해 부울 플래그를 반환하거나 컨테이너 유형 인 경우 __len__
hook을 구현합니다. 0
을 반환하면 컨테이너가 비어 있고 false로 간주됨을 의미합니다. 밀접하게 관련 주에
는 or
운영자는 같은 일을하지만, 반대한다. 첫 번째 표현식이 true로 평가되면 두 번째 표현식은 평가되지 않습니다.
그래, 그렇게하는 것이 안전합니다. 조건이 느슨하게 평가되는 경우의 비단뱀.
컴파일러는 항상 위 아래 왼쪽 오른쪽에 읽습니다. 그래서 If False and True
그러면 False가 컴파일러에서 먼저 발생하고 if 조건을 종료합니다. 이것은 내가 아는 모든 소프트웨어에 유효합니다. help()
의 멋진 도움 (HAH)와