파이썬에서 변수의 유형이 있는지 확인하는 방법이 있나요 string
처럼은 :
isinstance(x,int);
정수 값?
답변
파이썬 2.x에서는
isinstance(s, basestring)
basestring
및 의 추상 슈퍼 클래스 입니다 . 객체가 또는 의 인스턴스인지 테스트하는 데 사용할 수 있습니다 .str
unicode
str
unicode
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):
답변
이후 basestring
Python3에 정의되지 않은이 작은 트릭 코드가 호환되도록하는 데 도움이 될 수 있습니다
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)