Python语言特点

本文就简单说一下Python执行过程,强弱类型,静态动态类型。

在上大学的时候也用过C,后来就用了Python。用过Python之后发现方便很多,很多事情,譬如内存分配释放等操作都由Python虚拟机去完成了。不过我还是没有再进一步去比较一下,或者研究一些概念。

我们知道C语言的执行顺序要包括编译,连接,运行;而Python呢是把代码转换为字节码,然后剩下的事情就是由虚拟机去做了。所以说Python是一种解释性的语言。那上面说的字节码到底是啥?解释器如何去做呢?

字节码在Python虚拟机程序里对应的是PyCodeObject对象。.pyc文件是字节码在磁盘上的表现形式。简单来说就是在编译代码的过程中,首先会将代码中的函数、类等对象分类处理,然后生成字节码文件, 字节码其实是模仿的x86的汇编 。有了字节码文件,Python解释器就会将其转换为机器指令去执行。

当我们更改了源代码之后,在执行时,会检查与字节码的匹配情况,如果出现不一样,那就会重新pyc,否则沿用之前的。

 

说了这么多,再说说Python的类型特点。

动态,静态类型

Python是一种动态语言,它和C语言等静态语言的区别是啥呢?我的理解是Python是在运行的时候才确定变量类型,然而C语言是在编译的时候就要确定变量类型。更直白的说就是Python中我定义了一个变量a=1,我可以给a赋值一个非整数的类型,然而在C语言中是不允许的。

强类型,弱类型

我的理解是强类型时不允许进行类型隐式转换的;而弱类型是允许的。

比如我在Python中,我想对一个字符串和一个整数相加是会报错的,例子:

    a = 1
    b = 'sd'
    print a + b

报错:

  print a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'

 

然而在C语言中,这是允许的,嗯,还有点印象。

 

--------EOF---------
微信分享/微信扫码阅读