반응형
지금까지 파이썬에서 타입 비교를 할 때 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' 카테고리의 다른 글
[자작] DJ DJ pump this party (0) | 2023.03.04 |
---|---|
Node.js의 crypto.createCipher로 암호화된 값을 Python으로 복호화하기 (0) | 2023.02.19 |
파이썬 코딩 컨벤션 정리 (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 |