네,Python 2 와 Python 3 중bool__방법의 차 이 를 상세히 설명 하 다.

2015 단어 Python2Python3bool
Python 이 대상 을 대상 으로 프로 그래 밍 하 는 것 을 배 울 때 재 미 있 는 작은 문제 에 부 딪 혔 습 니 다.Python 의bool__방법 이 소 용이 없 는 문제.
나 는 내 가 쓴 코드 가 효과 가 있어 야 한 다 는 것 을 확인 하기 위해 내 가 가지 고 있 는 강 좌 를 반복 해서 읽 었 다.하지만 테스트 를 통과 하지 못 했 는데 내 가 이 룬bool__방법 은 Python 자체 의 인터페이스 가 아 닌 것 같 습 니 다.
코드 는 다음 과 같 습 니 다:

class Demo():

def __init__(self,value = 0):

  self.value = value

def __bool__(self):

  return bool(self.value > 5)


obj = Demo()

obj.value = 0

if obj:

print("yes")

else:

print("no")

print(bool(obj))
요 며칠 동안 Win 10 아래 의 bash 를 사용 하 는 것 이 비교적 편리 해서 나 는 줄곧 이 환경 에서 프로그램의 디 버 깅 을 진행 해 왔 다.
테스트 결 과 는 다음 과 같다.

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python bool_demo.py

yes

True
이것 은 다소 이상 한데,뜻밖에도 내 가 예 상 했 던 것 과 다르다.bool 방법 을 직접 호출 해 보 니 존재 하지 않 는 다 는 것 을 알 게 된 후에 이것 은 아마도 py2 와 py3 의 약간의 차이 일 것 이 라 고 추측 합 니 다.Win 10 의 Linux 서브 시스템 에서 python 버 전 은 2.X 입 니 다.구체 적 으로 다음 과 같 습 니 다.

grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08/16$python -V

Python 2.7.6
내 가 win 10 에 설치 한 Python 버 전 은 3.X 이 고 CMD 로 전환 하 는 것 은 다음 과 같 습 니 다.

E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08\16>pythonbool_demo.py

no

False


E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08\16>python-V

Python 3.6.0
최종 결 과 는 기대 에 부합 합 니 다!
보아하니 이것 은 Python 3 과 Python 2 사이 의 점 인터페이스의 차이 일 것 이다.좋 은 측면 에서 볼 때 이런 인 터 페 이 스 를 가 진 Python 3 가 더 인성 화 된 것 은 당연 하 다.이것 은 프로그래머 에 게 더욱 큰 자 유 를 주 고 Python 자체 와 의 집적 도가 높 은 코드 를 실현 할 수 있다.
이상 파 이 썬 2 와 파 이 썬 3 중bool__방법의 차 이 를 상세 하 게 설명 하 는 것 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기