Python-语言体系

一门编程语言所要涉及到的知识点实在太多,不可能在一篇文章里讲完,这里抽象的谈一谈语言的演进过程

程序就是调度计算机资源的过程

计算机的本质是调度各种资源来满足人的生产生活需求;概括起来有四种资源:计算资源、内存资源、存储资源、网络资源,而语言则是告诉机器如何调度这些资源,来达到人的目的。最基础的语言莫过于汇编,汇编作为机器指令的第一层抽象,将人从0和1的二进制码中解放出来,操作的对象变为寄存器和存储器,但其高度依赖所属的机器,移植性很差;随后高级语言进行了第二次抽象,封装了处理器的指令集,使得程序的移植性变强,语言的操作对象抽象为数据,而这,就是C语言。

语言是传递信息的媒介

谈论计算机的语言之前,我们先来聊聊人类的语言。人之所以与一般动物不同,很大程度上是由于人类发明了语言来传递信息,让人们从具体的事物中抽象出来,不用了解世界上的每一片叶子就能明白在树上挂着的绿色片状物体称之为叶子,信息也得以跨时间,跨空间传播。我们接收到的信息都是来源于这个世界,世界由两部分构成 -- 事物关系和数量关系。语言就是为了描述这两种关系,在计算机语言里,事物关系对应字符,数量关系对应数字。

语言的演进方式

C语言作为许多高级语言的始祖,它实现了最为直接的二次抽象,可以方便的将逻辑关系转化为线性关系,供计算机直接执行。它的运行方式是对数据的翻转腾挪,整个过程都需要语言定制好,带来的好处是十分高效,而且能根据需求充分的利用计算机资源,但其面向过程的设计使得语言很繁琐,当我们想要一个功能时不得不一步步实现所有的步骤,基于这种短板,人们引入了对象的概念,将语言进行了第三次抽象,面向对象和面向过程的区别,用苹果这个例子来解释:
如果去找一片地,种树苗,施肥,浇水,再精心呵护一年,等到瓜熟蒂落,这叫面向过程;如果去水果店,叫老板给我们一斤苹果,这叫面向对象,至于种地那些事,老板已经弄好了。

Python实现面向对象

Python是实现面向对象的一种语言,它将大量的操作封装到一个对象里,使用的时候直接调用该对象即可。但python不同于C++之处还在于它引入了上下文的机制来控制状态,实现类的行为这一特征。这让python成为动态语言,抽象的更加接近于自然语言。
举例来说,我们所写的类默认继承自object类,其中的__init__函数,在对象初始化的时候第一时间运行,__del__函数,在对象将要被释放之前运行,中间还有许多魔术方法来控制类的整个行为,包括With语句也是引入了上下文,在文件流要被释放的时候调用关闭函数来控制文件的行为;元类则是在类的所有属性绑定后作为管理者的角色,对该类的所有属性(属性涵盖方法)进行检查和编辑;继承则是将所写的类作为父节点,将要被继承的类的所有属性以树形的结构绑定在父节点上,完成功能的复用(进程与线程,命名空间与子命名空间都与该树形结构相似)。

至此,从最初的二进制码,演变成汇编,引入数据的概念抽象成高级语言,加入对象的概念,再进一步抽象成动态语言,语言的演化会越来越接近于自然语言。

python学习教程

有3个教程、一个场景熟悉的集合和官方文档,根据需要择取

写好文档

写程序和写好程序是两回事,这3个是写好程序的建议,必看

基础依赖工具

Linux和Git是必须要掌握的工具,这是两个我认为十分不错的书籍

posted @ 2020-05-20 13:49  Cshare  阅读(200)  评论(0)    收藏  举报