首頁 > 軟體

关于Python与Golang语言的对比分析

2022-05-13 21:11:28

一:前言

刚看了一篇软文,说什么“才华是改变人生最有效的途径”,反正呢,大体就是科技进步,要想一直在车上,就得不断的学习,刚好最近也准备学习Golang,最近火的不能在火了吧,刚好也有些Python基础,所以就想在学习Golang的同时,对比着Python,查漏补缺下Python的知识,我终相信语言是相同的,只是个别语法不一样,翻看以前写的Python笔记,现在回过头看看,挺潦草的哈,所以也准备借这个机会,把Python的笔记该重构的重构,该补充的补充,同时记录下Golang的学习历程。

二:特点

1.Python

①直译语言

程式不需要在执行前编译,在执行程式的时候才翻译,专门的直译器负责在每个语句执行的时候解释程式程式码。这样直译语言每执行一次就要翻译一次,效率比较低。

②动态资料型别 

支援过载运算子,也支援泛型设计。(运算子过载,就是对已有的运算子重新进行定义,赋予其另一种功能,以适应不同的资料型别。泛型设计就是定义的时候不需要指定型别,在用户端使用的时候再去指定型别)

③完全物件导向的语言

函数,模组,数位,字串都是物件,在Python中,一切接物件

完全支援继承,过载,多重继承 

④拥有强大的标准库

Python语言的核心只包含数位,字串,列表,元祖,字典,集合,档案等常见型别和函数,而由Python标准库提供了系统管理,网路通讯,文字处理,资料库介面,图形系统,XML处理等额外的功能。

⑤社群提供了大量第三方库

Python 社群提供了大量的第三方模组,使用方式与标准库类似。它们的功能覆盖 科学计算、人工智慧、机器学习、Web 开发、资料库介面、图形系统 多个领域。

2.Golang

①静态强型别、编译型、并行型

静态型别语言,但是有动态语言的感觉。(静态型别的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高)

可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个档案上去就完成了。

语言层面支援并行,这个就是Go最大的特色,天生的支援并行。Go就是基因里面支援的并行,可以充分的利用多核,很容易的使用并行。

②垃圾回收机制

内建runtime,支援垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC(记忆体垃圾回收机制)不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。

③支援物件导向程式设计

有介面型别和实现型别的概念,但是用嵌入替代了继承。

④丰富的标准库

Go目前已经内建了大量的库,特别是网路库非常强大。

⑤内嵌C支援

Go里面也可以直接包含C程式码,利用现有的丰富的C库

三:应用

1.Python

①网路程式设计

web应用,网路爬虫

②资料分析和机器学习

③自动化测试

④自动化运维

2.Golang

①伺服器程式设计

处理纪录档、资料打包、虚拟机器处理、档案系统等。

②分散式系统,资料库代理器等

③网路程式设计

这一块目前应用最广,包括Web应用、API应用、下载应用。

④记忆体资料库

如google开发的groupcache,couchbase的部分组建。

以上就是关于Python与Golang语言的对比分析的详细内容,更多关于Python与Golang对比的资料请关注it145.com其它相关文章!


IT145.com E-mail:sddin#qq.com