1 답변
-
type()와 instanceof()를 쓰는 방법이 있습니다.
type()
class Base(): pass a = Base() print "type([]) is list:\t\t",type([]) is list print "type({}) is dict:\t\t", type({}) is dict print "type(()) is tuple:\t\t", type(()) is tuple print "type('') is str:\t\t", type("") is str print "type(0) is int:\t\t\t", type(0) is int print "type(3.14) is float:\t", type(3.14) is float print "type(a) is Base:\t\t", type(a) is Base
type([]) is list: True type({}) is dict: True type(()) is tuple: True type('') is str: True type(0) is int: True type(3.14) is float: True type(a) is Base: False
isinstance()
class Base(object): pass a = Base() print "isinstance([], list):\t", isinstance([], list) print "isinstance({}, dict):\t", isinstance({}, dict) print "isinstance((), tuple):\t", isinstance((), tuple) print "isinstance('', str):\t", isinstance("", str) print "isinstance(0, int):\t\t", isinstance(0, int) print "isinstance(3.14, float):", isinstance(3.14, float) print "isinstance(a, Base):\t" , isinstance(a, Base)
isinstance([], list): True isinstance({}, dict): True isinstance((), tuple): True isinstance('', str): True isinstance(0, int): True isinstance(3.14, float): True isinstance(a, Base): True
주의
type()
으로는 object의 상속까지 알아낼 수는 없기 때문에 상속관계까지 포함하고 싶으면isinstance()
를 쓰세요.class Base(object): pass class Derived(Base): pass b = Derived() print "type(b) is Base:\t\t", type(b) is Base print "isinstance(b, Base):\t", isinstance(b, Base)
type(b) is Base: False isinstance(b, Base): True
이런 차이 때문에 보통
type()
보다는isinstance()
를 주로 씁니다.
댓글 입력