a = a and b는 무엇인가요?


라이브러리를 통해서 공부를 하다가 알 수 없는 부분이 생겨서 질문 드립니다.

def exemple_function(version):
    self.version = version and int(version)

이라고 되어있었는데 조건문도 아니고 and문이 왜 저기에 나온건지 이해가 잘 되지 않습니다...

커맨드라인으로 잠깐 실험해 보았는데

A = 1 and 'b'
A
>>> 'b'

B = 1 and 2
B
>>> 2

이런식으로 뒤에 값이 할당되더군요... 그러면 self.version = int(version) 로 쓰면 될 듯한데 저렇게 and를 사용한 이유를 모르겠습니다.

왜 저렇게 쓰는지 알려주셨으면 합니다. 감사합니다.

  • 2018년 01월 04일에 작성됨

조회수 296


Hashcode banner summercoding

2 답변


단순히 생각할 땐 타입때문에 그럴 것 같습니다.

'1.1' 인 경우 int('1.1')은 오류입니다. 보통 버전은 정수로 표현하기 보단 float 형태가 많으므로 문자열로 입력되는 것을 방지하기 위함 같습니다.

  • 2018년 01월 05일에 작성됨


제가 파이썬은 모르지만 동작하는게 자바스크립트와 같네요.

자바스크립트에선 and 연산 시 두 변이 모두 true면 우측변을 반환합니다. 반대로 or 연산에선 두 변이 모두 true면 좌측변을 반환하죠.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close