728x90
반응형
isinstance 라는 단어 자체에서 알 수 있듯이
instance인지 확인해주는 기능을 합니다.
가장 유용하게 사용할 수 있는 기능은 class를 통해서 instance를 생성해 준 경우,
만들어준 instance가 특정 class의 instance인지를 확인해줍니다.
그 외에도, data의 type을 활용하는데에도 쓸 수 있습니다.
단순 type을 확인하는 것은 type(data) == datatype example과 같은 형태로 비교하는 방법이 있기 때문에 그리 유용하진 않겠지만, 여러가지 type중의 하나인지 tuple과 함께 이용해서 사용할 수 있어서 유용하게 쓸 수 있습니다.
구체적인 예를 들어서 살펴봅시다.
1. class의 instance인지 확인
class Person:
pass
class Dog:
pass
me = Person()
print("나는 사람인가?:", isinstance(me, Person))
print("나는 개인가?:", isinstance(me, Dog))
결과
나는 사람인가?: True
나는 개인가?: False
me는 class Person으로 만들어진 instance이기 때문에 위와 같은 다행스러운 결과가 나옵니다.
2. data type 확인
sample = [1,2,3]
print(isinstance(sample, list))
print(isinstance(sample, str))
print("----")
print(isinstance(sample, (str, int)))
print(isinstance(sample, (str, int, list)))
----을 기준으로 위는 data_type을 한가지만 확인
아래는 data_type들을 tuple 형태로 넣어주고 그 중 하나에 해당하는지 확인
결과
True
False
----
False
True
** 추가 **
상속을 받은 경우 비교
class Parent:
pass
class Child(Parent):
pass
parent = Parent()
child = Child()
print(isinstance(parent, Child))
print(isinstance(child, Parent))
결과
False
True
요약:
부모 class의 instance는 자식 class의 instance이냐? False
자식 class의 instance는 부모 class의 instance이냐? True
728x90
반응형
'Python' 카테고리의 다른 글
python file, directory 경로 / file , directory 여부 확인 (0) | 2022.12.15 |
---|---|
list index: list에서 특정 값의 순서 찾기 (0) | 2022.12.14 |
python: __name__ / if __name__ == '__main__': (0) | 2022.12.05 |
assert (0) | 2022.12.01 |
python image base64 encoding # python으로 이미지를 base64 인코딩하기 (0) | 2022.11.29 |