[python] 변수 유형이 문자열인지 확인하는 방법?

파이썬에서 변수의 유형이 있는지 확인하는 방법이 있나요 string처럼은 :

isinstance(x,int);

정수 값?



답변

파이썬 2.x에서는

isinstance(s, basestring)

basestring및 의 추상 슈퍼 클래스 입니다 . 객체가 또는 의 인스턴스인지 테스트하는 데 사용할 수 있습니다 .strunicodestrunicode


Python 3.x에서 올바른 테스트는

isinstance(s, str)

bytes클래스는 Python 3에서 문자열 유형으로 간주되지 않습니다.


답변

나는 이것이 오래된 주제라는 것을 알고 있지만 Google에 처음으로 표시된 주제이며 만족스러운 답변을 찾지 못하면 나중에 참조 할 수 있도록 여기에 남겨 둘 것입니다.

six 는 이미이 문제를 다루는 Python 2 및 3 호환성 라이브러리입니다. 그런 다음 다음과 같은 작업을 수행 할 수 있습니다.

import six

if isinstance(value, six.string_types):
    pass # It's a string !!

코드를 살펴보면 다음과 같습니다.

import sys

PY3 = sys.version_info[0] == 3

if PY3:
    string_types = str,
else:
    string_types = basestring,


답변

Python 3.x 또는 Python 2.7.6에서

if type(x) == str:


답변

넌 할 수있어:

var = 1
if type(var) == int:
   print('your variable is an integer')

또는:

var2 = 'this is variable #2'
if type(var2) == str:
    print('your variable is a string')
else:
    print('your variable IS NOT a string')

도움이 되었기를 바랍니다!


답변

정수 및 문자열보다 많은 수를 확인하는 경우 유형 모듈도 있습니다.
http://docs.python.org/library/types.html


답변

아래의 더 나은 답변을 기준으로 편집하십시오. 약 3 개의 답변으로 내려 가서 밑줄의 차가움에 대해 알아보십시오.

오래된 대답 : Windows의 모든 COM 호출을 포함하여 여러 곳에서 얻을 수있는 유니 코드 문자열을 조심하십시오.

if isinstance(target, str) or isinstance(target, unicode):


답변

이후 basestringPython3에 정의되지 않은이 작은 트릭 코드가 호환되도록하는 데 도움이 될 수 있습니다

try: # check whether python knows about 'basestring'
   basestring
except NameError: # no, it doesn't (it's Python3); use 'str' instead
   basestring=str

그 후 Python2와 Python3 모두에서 다음 테스트를 실행할 수 있습니다

isinstance(myvar, basestring)