isinstance() 함수로 확인
이 단계에서는 Python 에서 isinstance() 함수를 사용하여 객체가 특정 클래스 또는 유형의 인스턴스인지 확인하는 방법을 배우게 됩니다. 이는 변수의 데이터 유형을 확인하는 또 다른 방법이며, 상속 및 사용자 정의 클래스를 사용할 때 특히 유용할 수 있습니다.
계속해서 작업해 온 string_examples.py 파일을 사용해 보겠습니다. isinstance()가 어떻게 작동하는지 보여주는 코드를 추가할 것입니다.
isinstance() 함수는 두 개의 인수를 받습니다. 확인하려는 객체와 확인하려는 클래스 또는 유형입니다. 객체가 지정된 클래스 또는 유형의 인스턴스인 경우 True를 반환하고, 그렇지 않으면 False를 반환합니다.
다음 줄을 string_examples.py 파일에 추가합니다.
## Checking with isinstance()
print(isinstance(string1, str))
print(isinstance(number, int))
print(isinstance(decimal, float))
print(isinstance(boolean, bool))
print(isinstance(string1, int))
파일을 저장합니다. 이제 터미널에서 python 명령을 사용하여 스크립트를 실행해 보겠습니다.
python ~/project/string_examples.py
다음과 같은 출력을 볼 수 있습니다.
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
보시다시피, isinstance(string1, str)은 string1이 문자열이므로 True를 반환합니다. 마찬가지로, isinstance(number, int)는 number가 정수이므로 True를 반환하는 등입니다. 그러나 isinstance(string1, int)는 string1이 정수가 아니므로 False를 반환합니다.
isinstance()는 사용자 정의 클래스와 함께 사용할 수도 있습니다. 예를 들어:
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass))
이 줄들을 string_examples.py 파일에 추가하고 다시 실행합니다.
python ~/project/string_examples.py
다음과 같은 출력을 볼 수 있습니다.
Hello, LabEx!
Python is fun
12345
!@#$%^
This is a sentence.
This is a
multi-line string.
This is another
multi-line string.
<class 'str'>
<class 'str'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
True
True
True
True
False
True
여기서 isinstance(obj, MyClass)는 obj가 MyClass의 인스턴스이므로 True를 반환합니다.
isinstance()를 사용하는 것은 Python 에서 객체의 유형을 확인하는 강력한 방법이며, 특히 상속 및 사용자 정의 클래스를 사용할 때 유용합니다. 이를 통해 다양한 유형의 데이터를 올바르게 처리할 수 있는 더 강력하고 유연한 코드를 작성할 수 있습니다.