欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

免费****!零基础学Python系列(14) - 动态类型和静态类型

程序员文章站 2024-01-14 22:37:58
...

本节我们接着讲动态类型和静态类型:

这个系列教程建议对照着视频学习,以下仅为课件内容。

本节课程的视频和实例源码下载方式:点击->我的主页,查看个人简介。

我尽量坚持每日更新一节。


编程语言从代码到能够运行通常需要经过编译和运行两个阶段,Python虽然是解释性语言,也不例外。源码.py通过编译,生成字节码文件.pyc。.pyc是一系列指令,这些指令通过python虚拟机PVM来执行。

免费****!零基础学Python系列(14) - 动态类型和静态类型

 

我们根据检查变量数据类型的时机,将编程语言分为动态类型语言静态类型语言

静态类型:在编译阶段检查变量的数据类型,比如C、Java等。对于这种类型的语言,我们需要在代码中定义变量的数据类型,不管是显式的声明还是隐式的定义。静态类型语言的变量,一旦定义了数据类型,在运行时是不能动态改变的。比如C语言,它的典型用法如下:

void main()

{

    int score1 = 0;  // 变量score1在使用之前需要声明为int类型,否则编译报错

    int score2 = 50;

   

    score1 = score2 + 10;

                // ......

}

动态类型:在运行阶段才检查变量的数据类型。Python就是一种动态类型语言,它的变量不需要声明数据类型,只有在运行时才动态确定其类型。通过上一节的几个小实验我们其实可以看出来,python的变量本质上是一个内存地址,本身没有类型,它的数据类型由其指向的对象来决定。比如下面的例子,在python中是可以正常运行的:



# 此时,tmp是一个整数类型
tmp = 100
print(type(tmp))

# 此时,tmp是一个字符串类型,类型可以动态改变
tmp = "hello, world!"
print(type(tmp))

它的输出是:

<class 'int'>

<class 'str'>

 

这种动态类型的特性,让python使用起来会更加简单,代码会更加简洁。但是它也会带来一些负面影响,比如无法在编译阶段发现问题,同时动态类型会带来运行时的一部分性能损耗。两者各有利弊。我们在使用python编程时,也建议随时搞清楚变量对应的数据类型,这样可以规避一些隐藏的问题。

 


本节课程的视频和实例源码下载方式:点击->我的主页,查看个人简介。

我尽量坚持每日更新一节。

相关标签: 0基础学python****