type() 和 isinstance() 在 Python 与例子

type() 是什么 Python?

Python 有一个名为 type() 的内置函数,可帮助您找到输入变量的类类型。例如,如果输入是字符串,您将获得以下输出: ,对于列表,它将是, ETC。

使用 type() 命令,您可以传递单个参数,返回值将是给定参数的类类型,例如:type(object)。

也可以将三个参数传递给 type(),即 type(name、bases、dict),在这种情况下,它将返回一个新的类型对象。

type() 的语法

type() 有两种使用方式,如下所示:

 type(object)
type(namr, bases, dict)

参数:类型(对象)

  • object:这是必需的参数。如果这是传递给 type() 的唯一参数,那么它将返回参数的类型。

参数:类型(名称,基础,字典)

  • name:类的名称。
  • bases:(可选)。这是一个可选参数,它是基类
  • dict:(可选)。这是一个可选参数,它是一个包含类定义的命名空间。

回报值

如果对象是传递给 type() 的唯一参数,那么它将返回对象的类型。

如果传递给类型的参数是类型(object,bases,dict),在这种情况下,它将返回一种新类型的对象。

type() 的示例

在此示例中,我们有一个字符串值、数字、浮点值、复数、列表、元组、字典和集合。我们将使用具有类型的变量来查看每个变量的输出。

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'>

示例:在 type() 中使用 name、bases 和 dict

也可以使用以下语法来调用类型:type(name, bases, dict)。

传递给type()的三个参数即name、bases和dict是组成类定义的组件。name表示类名,bases是基类,dict是基类属性的字典。

在这个例子中,我们将使用 type() 中的所有三个参数,即 name、bases 和 dict。

示例:

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() 接受两个参数,如果第一个参数是第二个参数给出的 classinfo 的实例,则返回 true。

语法 isinstance()

isinstance(object, classtype)

参数

  • object:要将其实例与 classtype 进行比较的对象。如果类型匹配则返回 true,否则返回 false。
  • 类类型:一种类型、一个类、或者一个类型和/或类的元组。

返回值

如果对象是 classtype 的实例,它将返回 true,否则返回 false。

isinstance() 的示例

在本节中,我们将研究各种示例来学习 isinstance()

例如:isinstance() 整数检查

下面的代码将整数值 51 与类型 int 进行比较。如果 51 的类型与 int 匹配,则返回 true,否则返回 false。

age = isinstance(51,int)
print("age is an integer:", age)

输出:

age is an integer: True

例如:isinstance() 浮点检查

在这个例子中,我们将把浮点值与浮点类型进行比较,即将 3.14 值与浮点类型进行比较。

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) 的类型是否为 tuple。如果给定的输入是 tuple 类型,则返回 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},类型为 set。如果给定的输入是 set 类型,则返回 true,如果不是,则返回 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

示例:isinstance() 字典检查

代码检查 dict({“A”:”a”, “B”:”b”, “C”:”c”, “D”:”d”},类型为 dict。如果给定的输入是 dict 类型,则返回 true,如果不是,则返回 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

类型() 实例()
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() 的内置函数,可帮助您找到输入变量的类类型。例如,如果输入是字符串,您将获得以下输出: ,对于列表,它将是, ETC。
  • 对于 type(),您可以传递单个参数,返回值将是给定参数的类类型,例如 type(object)。
  • 也可以将三个参数传递给 type(),即 type(name、bases、dict),在这种情况下,它将返回一个新的类型对象。
  • Python 有一个内置函数,名为 instance(),用于将值与给定的类型进行比较。如果给定的值和类型匹配,则返回 true,否则返回 false。使用 isinstance(),您可以测试字符串、浮点数、整数、列表、元组、字典、集合、类等。
  • 使用 isinstance() 方法,您可以测试字符串、浮点数、整数、列表、元组、字典、集合、类等。