Python中的动态类型

Python中的动态类型

在本教程中,我们将了解Python中的动态类型是什么。

每当我们在python中编写程序时,我们会遇到一组不同的语句,其中之一是赋值语句,我们用一个值初始化一个变量。

让我们看看在Python的情况下赋值的区别。

当我们谈论CC++和Java之类的编程语言时,内存是根据变量的数据类型分配的,并且按相应的方式访问,而Python是一种动态类型语言,它在某个位置存储值,然后将相应的变量名与容器结合起来。

数据类型是在运行时确定的。

考虑下面给出的程序-

a = 12.0
print(type(a))
b = 24
print(type(b))
c = 'data'
print(type(c))
print (a * 3)
print (b * 3)
print (c * 3)

输出:

<class 'float'>
<class 'int'>
<class 'str'>
36.0
72
datadatadata

解释:

让我们来看一下这个程序的解释-

  1. 在步骤1中,我们使用不同类型的变量a、b和c进行了初始化。
  2. 接着,我们检查它们的类型,得到的结果分别是浮点数、整数和字符串。
  3. 下一步,我们将它们三个乘以三。
  4. 由于数据类型在运行时已知,操作是根据类型进行的。
  5. 我们可以观察到输出中的第一个值是浮点数,下一个值是整数,而字符串被乘以三次。
  6. 在执行程序时,会显示出预期的输出。

对象、变量和引用之间的关系

当我们在Python中赋值一个变量时,以下步骤会发生-

  1. 我们在内存中创建一个包含数值的对象。
  2. 如果变量名还不存在,我们可以创建它。
  3. 引用被分配给变量指向的对象。

考虑下面给出的程序-

a = 12.0
print (type(a))
a = 24
print(type(a))
a = 'data'
print (type(a))
a = 2+3j
print (type(a))

输出:

<class 'float'>
<class 'int'>
<class 'str'>
<class 'complex'>

解释:

让我们来理解一下上面程序中发生了什么。

  1. 我们用不同的数据类型的值初始化了变量’ a ‘。
  2. 之后,我们检查了每个情况下’ a ‘的类型。
  3. 由此我们可以推断出-
    1. 在第一个情况下,a是对一个float对象的引用。
    2. 在第二种情况下,a是对一个整数对象的引用。
    3. 在第三种情况下,a是对一个字符串对象的引用。
    4. 在第四种情况下,a是对一个复数对象的引用。

共享引用

在开始之前,让我们看一下这个程序-

a = 12.0
b = a
print(a)
print(b)

输出:

12.0
12.0

解释:

是时候了解到底发生了什么-

  1. 我们已经将a的值初始化为12.0,而将b的值初始化为a。
  2. 之后,我们打印了a和b的值,结果为12.0。

这就是指共享引用的概念,即“两个变量可以具有相同的引用”。

再举一个示例会更加清楚。

a = 12.0
b = a
a = a * 7
print(a)
print(b)

输出:

84.0
12.0

解释:

让我们看一下这个程序的解释-

  1. 我们将 a 的值初始化为12.0, ba ,然后再次将 ‘ a ‘ 赋值为a * 7
  2. 之后,我们打印出来的 a 的值为84.0,而 b 的值为12.0,因为它仍然引用着 a 的初始值。

动态类型语言的缺点

像Java这样的语言更方便的特点是它是静态类型的,因此错误和错误在编译时报告而不是运行时。

因此,对于Python开发人员来说,错误在运行时显示是一个主要问题,因此他们必须制定纠正错误的策略。

结论

总结本教程,我们可以说Python是一种动态类型语言,在这里我们了解了在使用它时可以观察到的不同特征。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程