Проверка с использованием isinstance()
На этом этапе вы узнаете, как использовать функцию isinstance()
в Python для проверки, является ли объект экземпляром определенного класса или типа. Это еще один способ проверить тип данных переменной, и он может быть особенно полезен при работе с наследованием и пользовательскими классами.
Продолжим использовать файл 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)
возвращает True
, потому что string1
- это строка. Аналогично, isinstance(number, int)
возвращает True
, потому что number
- это целое число, и так далее. Однако isinstance(string1, int)
возвращает False
, потому что string1
не является целым числом.
Функцию 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)
возвращает True
, потому что obj
является экземпляром MyClass
.
Использование функции isinstance()
- мощный способ проверить тип объекта в Python, особенно при работе с наследованием и пользовательскими классами. Это позволяет писать более надежный и гибкий код, который может корректно обрабатывать разные типы данных.