Python 은 변수로 유형을 여부를 확인할 수 있는 방법이 구체화하십시오. 다음과 같습니다.
isinstance(x,int);
정수 값을 위한?
Python 에서 2.x 전날에약혼자에게 해야한다고
isinstance(s, basestring)
'배서스트링' 은 [추상 수퍼] (https://docs.python.org/2/library/functions.html # 배서스트링) '와' 유니코드 '의' str. Str 인스턴스입니다 표시할지를 테스트하려면 객체를 사용할 수 있다 '' 또는 '유니코드'.
윈도 3.x 의 올바른 test) 은,
isinstance(s, str)
하지만 이것은 오래된 항목를 그러니까말이야 기술입니까 나와 있는 점을 감안하면, 구글, 첫 번째 # 39 의 만족스러운 해답을 찾을 수 없다 난 don& I& # 39, ll leave this here for 향후 참조:
6 는 파이썬 라이브러리 있으며 이미 닫히지만 호환성에서는 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,
할 수 있습니다.
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')
이를 통해 희망을!
이후 ',' t # 39 에 정의된, 이 작은 트릭 권능은하나님께 배서스트링 isn& 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)
파이썬 유니코드 등 2 / 3
from __future__ import unicode_literals
from builtins import str # pip install future
isinstance('asdf', str) # True
isinstance(u'asdf', str) # True
다른 많은 좋은 제안, 하지만 난 여기서 제공하는 don& # 39, t 지켜보리니 좋은 크로스 플랫폼 요약. 다음 좋은 파이썬 프로그램에 대한 하락 합니다.
def isstring(s):
# if we use Python 3
if (sys.version_info[0] >= 3):
return isinstance(s, str)
# we use Python 2
return isinstance(s, basestring)
이 기능을 사용할 수 있는지, 우리는 '이신스턴스 (오브젝트, 클레생포)' 또는 '3' 에서 '우리' 의 str 은 파이썬 입력입니다 배서스트링 파이썬 2.
제 대답은 슬라이드에서는 파이썬 2 와 함께 3 이러한 요구 사항을 모두 지원할 수 있다.
로 작성된 코드를 Py3 최소한의 Py2 호환성 코드입니다.
나중에 Py2 제거하시겠습니까 호환성 코드를 중단 없이. I. e. aim 삭제용으로 Py3 코드를 위해 전용, 수정할 수 없습니다.
'6' 또는 이와 유사한 호환성 등을 숨기십시오 어떤 모듈로 사용하지 않는 경향이 있습니다 낼 위해 노력하고 있다.
미래에 대한 잠재적 Py4.
import sys
PY2 = sys.version_info.major == 2
# Check if string (lenient for byte-strings on Py2):
isinstance('abc', basestring if PY2 else str)
# Check if strictly a string (unicode-string):
isinstance('abc', unicode if PY2 else str)
# Check if either string (unicode-string) or byte-string:
isinstance('abc', basestring if PY2 else (str, bytes))
# Check for byte-string (Py3 and Py2.7):
isinstance('abc', bytes)
이 작품을 위해 외부 파이썬 라이브러리 의존하지 않으려면 모두 2.7+ 및 파이썬 3 (http://ideone.com/uB4Kdc):
# your code goes here
s = ["test"];
#s = "test";
isString = False;
if(isinstance(s, str)):
isString = True;
try:
if(isinstance(s, basestring)):
isString = True;
except NameError:
pass;
if(isString):
print("String");
else:
print("Not String");