본문 바로가기
파이썬

파이썬 괄호가 있거나없는 파이썬 주장

by º기록 2020. 11. 22.
반응형

다음은 assert의 네 가지 간단한 호출입니다.

>>> assert 1==2
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AssertionError

>>> assert 1==2, "hi"
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AssertionError: hi

>>> assert(1==2)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AssertionError

>>> assert(1==2, "hi")

마지막 항목은 오류를 발생시키지 않습니다. 이 동작을 일으키는 괄호가 있거나없는 assert 호출의 차이점은 무엇입니까? 내 연습은 괄호를 사용하는 것이지만 위의 내용은 괄호를 사용하지 않아야 함을 시사합니다.

 

해결 방법

 

마지막 assert 는 IDLE을 통하지 않고 전체 인터프리터를 통해 실행했다면 경고 ( SyntaxWarning : assertion은 항상 true, 아마도 괄호를 제거 하시겠습니까? )를 줄 것입니다. assert 는 키워드이고 함수가 아니기 때문에 실제로 튜플을 첫 번째 인수로 전달하고 두 번째 인수는 그대로 둡니다.

비어 있지 않은 튜플은 True 로 평가되고, 어설 션 메시지는 선택 사항이므로 assert (1 ==)를 작성할 때 기본적으로 assert True 를 호출했습니다. 2, "hi") .

 

참조 페이지 https://stackoverflow.com/questions/3112171

 

 

반응형

댓글