Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 변수 타입이 문자열인지 확인하는 방법

isinstance() 함수로 문자열 여부 확인하기

Python에서 변수가 문자열인지 확인하려면 isinstance(var, class) 함수를 사용하는 것이 가장 좋습니다. 이 함수는 첫 번째 인자로 전달된 변수가 두 번째 인자로 지정한 클래스의 인스턴스인지 검사하고, 그 결과를 True 또는 False로 반환합니다.

Python 2.x에서의 사용 방법

Python 2.x에서는 strunicode의 공통 기반 클래스가 basestring입니다. 따라서 일반 문자열과 유니코드 문자열을 모두 한 번에 검사할 수 있습니다.

>>> s = 'A string'
>>> isinstance(s, basestring)
True
>>> isinstance(s, str)
True
>>> isinstance(10, basestring)
False

위 예제에서 볼 수 있듯이, 문자열 변수 sbasestringstr 모두에 대해 True를 반환하지만, 정수 10False를 반환합니다.

Python 3.x에서의 사용 방법

주의할 점은 Python 3.x에서는 basestring이 더 이상 정의되어 있지 않다는 것입니다. Python 3부터는 모든 문자열이 기본적으로 유니코드이므로, 대신 str을 직접 사용해야 합니다.

>>> s = 'A string'
>>> isinstance(s, str)
True
>>> isinstance(10, str)
False

type() 함수와의 차이점

변수 타입을 확인하는 또 다른 방법으로 type() 함수가 있습니다. 하지만 type()은 상속 관계까지 고려하지 않는 반면, isinstance()는 서브클래스도 올바르게 인식합니다. 따라서 타입 검사에는 일반적으로 isinstance()를 사용하는 것이 권장됩니다.

>>> type(s) == str
True
>>> type(10) == str
False

정리

  • 문자열 여부 확인에는 isinstance(변수, str)을 사용하세요.
  • Python 2.x에서는 basestring, Python 3.x에서는 str을 사용합니다.
  • 상속된 클래스까지 고려하려면 type()보다 isinstance()가 더 안전합니다.