type() и isinstance() в Python с примерами
Что такое type() в Python?
Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если входные данные представляют собой строку, вы получите выходные данные в виде , для списка это будет , и т. д.
Используя команду type(), вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например: тип(объект).
Также возможно передать в type() три аргумента, т.е. type(name, bases, dict), в этом случае он вернет вам объект нового типа.
Синтаксис типа()
type() можно использовать двумя способами, как показано ниже:
type(object) type(namr, bases, dict)
Параметры: тип(объект)
- объект: Это обязательный параметр. Если это только параметр, переданный в type(), он вернет вам тип параметра.
Параметры: тип(имя, базы, дикт)
- имя: имя класса.
- основы: (необязательно). Это необязательный параметр и это базовый класс.
- дикт: (необязательно). Это необязательный параметр, и это пространство имен, содержащее определение класса.
Возвращаемое значение
Если объект является единственным параметром, передаваемым в type(), он вернет вам тип объекта.
Если параметры, переданные в тип, относятся к типу (объект, базы, dict), в этом случае он вернет новый тип объекта.
Пример типа()
В этом примере у нас есть строковое значение, число, значение с плавающей запятой, комплексное число, список, кортеж, dict и set. Мы будем использовать переменные с типом, чтобы увидеть выходные данные для каждой из них.
str_list = "Welcome to Guru99" age = 50 pi = 3.14 c_num = 3j+10 my_list = ["A", "B", "C", "D"] my_tuple = ("A", "B", "C", "D") my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"} my_set = {'A', 'B', 'C', 'D'} print("The type is : ",type(str_list)) print("The type is : ",type(age)) print("The type is : ",type(pi)) print("The type is : ",type(c_num)) print("The type is : ",type(my_list)) print("The type is : ",type(my_tuple)) print("The type is : ",type(my_dict)) print("The type is : ",type(my_set))
Вывод:
The type is :<class 'str'> The type is :<class 'int'> The type is :<class 'float'> The type is :<class 'complex'> The type is :<class 'list'> The type is :<class 'tuple'> The type is :<class 'dict'> The type is :<class 'set'>
Пример: использование type() для объекта класса.
Когда вы проверяете объект, созданный из класса, с помощью type(), он возвращает тип класса вместе с именем класса. В этом примере мы создадим класс и проверим тип объекта, созданный в результате теста класса.
class test: s = 'testing' t = test() print(type(t))
Вывод:
<class '__main__.test'>
Пример: использование имени, баз и dict в type()
Тип также можно вызвать с использованием синтаксиса: type(name, bases, dict).
Три параметра, передаваемые в type(), т.е. name, bases и dict, являются компонентами, составляющими определение класса. Имя представляет имя класса, bases — базовый класс, а dict — словарь атрибутов базового класса.
В этом примере мы собираемся использовать все три параметра, а именно имя, базы и dict, в type().
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
class MyClass: x = 'Hello World' y = 50 t1 = type('NewClass', (MyClass,), dict(x='Hello World', y=50)) print(type(t1)) print(vars(t1))
Вывод:
<class 'type'> {'x': 'Hello World', 'y': 50, '__module__': '__main__', '__doc__': None}
Когда вы передаете все три аргумента в type(), это помогает вам инициализировать новый класс с атрибутами базового класса.
Что такое isinstance() в Python?
Python isinstance является частью встроенные функции Python. Python isinstance() принимает два аргумента и возвращает true, если первый аргумент является экземпляром информации о классе, заданной в качестве второго аргумента.
Синтаксис isinstance()
isinstance(object, classtype)
Параметры
- объект: объект, экземпляр которого вы сравниваете с типом класса. Он вернет true, если тип соответствует, в противном случае — false.
- Тип класса: тип, класс или кортеж типов и/или классов.
Возвращаемое значение
Он вернет true, если объект является экземпляром classtype, и false, если нет.
Примеры isinstance()
В этом разделе мы изучим различные примеры, чтобы изучить isinstance().
Пример: проверка целого числа isinstance()
Код ниже сравнивает целочисленное значение 51 с типом int. Он вернет true, если тип соответствует 51, с int, в противном случае — false.
age = isinstance(51,int) print("age is an integer:", age)
Вывод:
age is an integer: True
Пример: isinstance() проверка с плавающей запятой
В этом примере мы собираемся сравнить значение с плавающей запятой с типом float, т.е. значение 3.14 будет сравниваться с типом float.
pi = isinstance(3.14,float) print("pi is a float:", pi)
Вывод:
pi is a float: True
Пример: проверка строки isinstance()
message = isinstance("Hello World",str) print("message is a string:", message)
Вывод:
message is a string: True
Пример: проверка кортежа isinstance()
Код проверяет наличие кортежа (1,2,3,4,5) типа кортеж. Он вернет true, если введенные данные имеют тип кортежа, и false, если нет.
my_tuple = isinstance((1,2,3,4,5),tuple) print("my_tuple is a tuple:", my_tuple)
Вывод:
my_tuple is a tuple: True
Пример: isinstance() Установить проверку
Код проверяет наличие набора ({1,2,3,4,5} с установленным типом. Он вернет true, если заданный вход имеет тип set, и false, если нет.
my_set = isinstance({1,2,3,4,5},set) print("my_set is a set:", my_set)
Вывод:
my_set is a set: True
Пример: проверка списка isinstance()
Код проверяет список [1,2,3,4,5] со списком типов. Он вернет true, если введенные данные имеют список типов, и false, если нет.
my_list = isinstance([1,2,3,4,5],list) print("my_list is a list:", my_list)
Вывод:
my_list is a list: True
Пример: проверка dict isinstance()
Код проверяет наличие dict({"A":"a", "B":"b", "C":"c", "D":"d"} с типом dict. Он вернет true, если данные входные данные имеют тип dict и false, если нет.
my_dict = isinstance({"A":"a", "B":"b", "C":"c", "D":"d"},dict) print("my_dict is a dict:", my_dict)
Вывод:
my_dict is a dict: True
Пример: проверка isinstance() для класса
Код показывает проверку типа класса с помощью isinstance(). Объект класса сравнивается с именем класса внутри isinstance(). Он возвращает true, если объект принадлежит классу, и false в противном случае.
class MyClass: _message = "Hello World" _class = MyClass() print("_class is a instance of MyClass() : ", isinstance(_class,MyClass))
Вывод:
_class is a instance of MyClass() True
Разница между type() и isinstance() в Python
тип() | isinstance () |
---|---|
Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. | Python имеет встроенную функцию isinstance(), которая сравнивает значение с указанным типом. Если значение и указанный тип совпадают, она вернет true, в противном случае false. |
Возвращаемое значение является объектом типа | Возвращаемое значение является логическим, т. е. истинным или ложным. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(type(A()) == A) print(type(B()) == A) Вывод: True False В случае типа проверка подкласса возвращает false. |
class A: my_listA = [1,2,3] class B(A): my_listB = [1,2,3] print(isinstance(A(), A)) print(isinstance(B(), A)) Вывод: True True isinstance() дает истинное значение при проверке с подклассом. |
Резюме
- Python имеет встроенную функцию type(), которая помогает вам найти тип класса переменной, заданной в качестве входных данных. Например, если входные данные представляют собой строку, вы получите выходные данные в виде , для списка это будет , и т. д.
- Для type() вы можете передать один аргумент, и возвращаемое значение будет типом класса данного аргумента, например, тип(объект).
- Также возможно передать в type() три аргумента, т.е. type(name, bases, dict), в этом случае он вернет вам объект нового типа.
- Python имеет встроенную функцию instance(), которая сравнивает значение с указанным типом. Если значение и указанный тип совпадают, она вернет true, в противном случае false. Используя isinstance(), вы можете проверить string, float, int, list, tuple, dict, set, class и т. д.
- Используя метод isinstance(), вы можете проверить строку, число с плавающей запятой, целое число, список, кортеж, dict, набор, класс и т. д.