반응형

지금까지 파이썬에서 타입 비교를 할 때 type() 메소드를 사용해서 비교하고 있었는데 이게 알고 보니 2 버전과 3 버전에서 결과가 다르게 나오고 있었다.

Python 2


str(type(obj)) == "<type 'str'>"

Python 3


str(type(obj)) == "<class 'str'>"

잘못된 방법이라 올바른 방법을 찾아봤더니 두 가지 방법이 있었다.

1. obj가 정확히 str인지 확인


type(obj) is str

2. obj가 str이거나 str을 상속받은 클래스인지 확인


isinstance(obj, str)

일반적으로 2번을 더 자주 사용한다고 한다. 앞으로는 2번으로 사용해야겠다. 참고로 issubclass() 메소드의 두 번째 인자는 튜플도 허용하니 여러 타입 중의 하나인지 확인하고 싶을 땐 튜플을 넘겨주면 된다.

반응형

'프로그래밍 > Python' 카테고리의 다른 글

파이썬 타입 체크  (2) 2021.02.13
파이썬 코딩 컨벤션 정리  (0) 2020.08.08
pyc & pyo 디컴파일러, Easy Python Decompiler  (3) 2020.03.21
[자작] SteamGifts 알리미  (0) 2019.06.21
메시지박스 띄우기  (1) 2016.10.03
중복 실행 방지  (0) 2016.08.14
  1. jins76lsw 2021.02.14 17:14

    안녕하세요.
    레딧에서 커서 가두기 다운 받았는데..
    활성화 시키고 나서 지정 키 설정하고 그 키를 누르면 자유롭게 양쪽으로 이동이 가능할까요?
    예를 들면 활성 상태에서 컨트롤 키를 누르고 커서를 움직이면 양쪽 모니터를 자유롭게 이동이 가능하게요~
    아니면 단축키를 설정할 수 있게 한다던지... 혹시나 하는 마음에서 댓글 남겨 봅니다.

    헉..
    근데 제가 하는 게임에서는 이걸 활성 시키니까.. 마우스 오른쪽 버튼을 클릭하면 앞뒤 방향 전환이 되는군요.

    어떤 원리인지 모르겠지만 커서 락 프로그램이 전부다 오른쪽 마우스 클릭이 제대로 작동이 안되네요.

    게임과 호환성 문제인지는 모르겠지만 관련 프로그램에서 동일 증상이라는 게 흥미롭습니다.

    • BlogIcon joyfuI 2021.02.14 20:21 신고

      레딧에서 받으셨다는 게 제가 만든 프로그램인진 모르겠지만
      https://joyfui.wo.tc/1030
      컨트롤키를 누르는 동안만 잠시 해제하는 건 조금 복잡할 것 같고 단축키 바꾸는 건 소스가 공개되어 있으니 조금만 수정하시면 됩니다.
      코드에서 주석 참고해서 Hotkey 부분만 조금 수정하시면 돼요.

      마우스 가두기 원리는 아마 모든 프로그램이 동일할 겁니다. 윈도우에 그냥 ClipCursor란 api가 있거든요. 특정 게임에서 이상한 동작을 하는 건 신기하네요.

+ Recent posts