十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

python浅谈

python浅谈 在学习python之前我们首先来谈谈python。Python这个语言其实很早就有了只是我们接触它可能也差不多是2010年之后的事情了。记得在2013年当时我们所在的公司开始全面从瀑布的传统开发流程转向敏捷模式。对于敏捷来讲有一些流程和指标例如dailytest。但是如果想做dailytest那就必须有一套工具能够支撑我不打算去详细谈如何去设计一个自动化的dailytest框架只是说在这个机缘巧合之下我们选择了python作为dailytest的工具语言。因为我们公司是做机顶盒的整个测试团队对c/c是很熟悉的但是对python是一无所知为了更快的推进当时公司专门请来一个人来教大家python一连上了二十多节课基本上把python语言的基本语法了解了然后大家用python来开发这个工具。如果用python开发一个小工具是很快的但是如果是比较复杂的揉进了业务逻辑的工具那就需要比较长的时间。其实说到测试工具很多不了解测试人往往觉得测试工具是无往不利的一旦搞定了自动化便可以极大的缩短测试间这个看法是不太正确的。这个问题回头可以专门写一篇来谈这里不过多的叙述。总而言之python的那句口号“人生苦短我用phython。”这句话已经深入人心。说明了python的有优点是快我们可以用python快速的写一些小工具这得益于python丰富的第三方库。Python的设计哲学强调简洁性和可读性所以你可以看到python是通过缩进而不是分号来分割语句的。Python是一门解释性语言什么解释性语言呢所谓解释性语言和编译型语言C/C是相对的。简单来讲如果你写了一个程序这个程序需要一次性的编译成机器语言二进制码那这种语言就是编译型语言。如果一个语言它可以解释一句执行一句这个语言就是解释性语言。解释器负责翻译一句执行一句。当然如果在说的深入一点其实python也不算一个真正的解释器在我们运行python的时候我们会发现生成一个pyc的文件这个文件可以认为和java的class文件一样是一个中间过程首先将python的文件编程pyc文件这个可以理解为python的字节码然后在通过python的虚拟机一句一句的解释执行。这个python的虚拟机是不是和java的虚拟机有异曲同工之妙和java虚拟机一样python通过python虚拟机实现了平台无关性。什么是平台无关性呢举个例子你在windows写的代码同样可以在linux下运行可能现在大家看这个问题觉得没什么好稀奇的因为可能觉得世界本来是这个样子的其实不然。要深刻体会到这个问题得回到二十多年前那时候我的同学小胖正在用java写一个程序当时java就已经有了平台无关性的说辞了叫做一次书写多次运行。但是等小胖把windows上用java写好的程序移植到linux环境下时候一运行程序就是各种出错把他搞崩溃了嘴里不停骂shit。其实这就是当是java的平台无关性实现的不好所有了当时的那句嘲讽一次书写多次修改。现在java虚拟机已经很好的实现了平台无关性甚至是语言无关性。只要你将java编译为字节码这个字节码可以在任何平台上运行。字节码实现了语言无关性我们可以讲java编译成字节码可以将python编译成字节码这样所有的字节码都可以在java虚拟机上运行。说到这里我们都明白了实现平台无关性的关键点是虚拟机针对windows linuxmac都运行相对应的java虚拟机所以你在windows上生成的jar包也可以在linux或者mac上运行。因为不论是什么平台的编译器生成的字节码是一样的也就是与平台无关等到执行的时候不同的平台的虚拟机再将字节码翻译成对应特定平台的机器指令。同理python也是一样。好了通过python的浅谈我们扩展到了编译型语言和解释性语言谈论了两者的区别同时谈到了虚拟机这可能和python语言本身没什么直接关系但是能够简单理解语言是如何运行的也是有好处的。其实对于编译本身这个话题只是一个开端下一章节我想详细的谈一下编译的过程这样我相信对于计算机软件的运行会有一个简单清晰的理解这也契合我之前说的我们学习python而不仅仅是python而是相关的计算机基础知识。
返回列表