先是小编说 Python 是动态语言,又恰恰是 Python/Go 双修(大雾其实小编是 Rust

tornado 是有那么些标题,可是 gevent 已经缓解了。小编在 node.js
的某难点下已经回答过,对于 node 而言,能选取的异步模型唯有二个,而
Python 正是太多选取了。其余 pypy+tornado+redis
能够随意虐各个长连接的光景,比如我给作者厂写过的一个 push service。

error,可以吗,固然有语言洁癖的同校恐怕确实受不了go的语法,越发是预订的终极2个重回值是error。

天赋的相互协理,因为goroutine以及channel,用go写分布式应用,写并发程序卓殊的简单。没有了蛋疼的callback导致的代码逻辑割裂,代码逻辑都以各类的。

GC,java的GC发展20年了,go才那样点时间,gc铁定不健全。所以我们依然不能够轻易的写代码,不然在大请求量上面gc或者会卡顿整个服务。所以有时候,该用对象池,内部存款和储蓄器池的必然要用,纵然代码丑了点,但好歹质量上去了。

python是一门动态语言,不是强类型系统。对于一个变量,我们有时候压根不明了它是何等类型,然后就恐怕出现int

  • string这样的运转时不当。

在python里面,能够允许同名函数的面世,后四个函数会覆盖前多个函数,有2次大家系统3个很严重的百无一用正是因为那一个导致的。

实质上,Python 有宏能够绕开那个GIL,可是呢架构划设想计得好其实能够幸免的,到异步那块作者会说。

python没有原生的协程援助,固然可以经过gevent,greenlet那种的上patch方式来支撑协程,但归根到底更改了python源码。其余,python的yield也得以拓展简要的协程模拟,但说到底不可能跨堆栈,局限性非常大,不领会3.x的本子有没有革新。

django的网络是同步阻塞的,也正是说,借使大家供给拜访外部的2个劳动,在等候结果重回那段日子,django不可能处理任何别的的逻辑(当然,四线程的除了)。如若访问外部服务须求不长日子,那就象征大家的一切服务大约在十分短一段时间完全不可用。

为了消除这几个标题,我们只可以不停的多开django进度,同时必要保障拥有服务都能一点也不慢的拍卖响应,但考虑那事实上是一件很不可相信的工作。

运营铺排,直接编译成二进制,扔到服务器上边就成,比python须要安装一堆的环境那是简约的太多了。当然,借使有cgo,大家也急需将相应的动态库给扔过去。

一段段来吧,首先小编说 Python 是动态语言

1.4 开端 go 正是 百分之百 精确 GC
了,其余说到卡顿啊,完全和您怎么用对象有关,能内联绝不传引用一大半光景是一点一滴丰盛的,那样
gc 的影响程度会压低。实在想用池……只好说为什么不选 Java。

比方推测没错,你们以后还在用五年前写的 Gateway?那多少个基于 django route
的流量分发层?四年前本身离开的时候已经小范围的采纳 Flask+Gevent 德姆o
测试过了,无论是品质依旧负载都比同步模型的 django 有优势。假使依旧django
那套的话,笔者只好说比较遗憾,毕竟那时候金山新职员和工人业余大学学赛头牌正是自己和几个小伙伴写的实时同步在线文书档案编辑系统,用的正是那套技术。

骨子里,固然是静态检查,pylint 和 pyflakes 是足以做那件事的,即便不能和
go
那种静态编写翻译型语言比,但也丰富了。要是没记错的话,阿通当年是须求全组都在付出前做静态检查的。小编觉着那种难题越多的应该是人士素质上来幸免,毕竟葱头也说过,代码自身写的即将多回头看看,看能或不能够重构,能还是不能够做更好。不是说偷懒不行,不过从中得出
Python 动态性格太灵活,Python:怪小编咯?

其余,函数作为第③目的,在 Python 中是 feature,Go 要写个
mock,简直虐得不要不要的。

质量,go的质量大概赶不上c,c++以及openresty,但真正也挺强悍的。在大家的门类中,未来单机就安顿了贰个go的经过,就全盘能够独当一面此前200个python进程干的作业,而且CPU和MEM占用更低。

那其实是 Go style,无论是 go fmt 照旧 error style,Go
其实是想抹平不一致工程师之间的风骨难题。不再为了贰个缩进和大括号地点怎么的浪费时间。那种艺术并不是糟糕,只是小编个人认为没
rust 这种重回值处理友善。

当自己第3遍选择python开发品种,作者是没成功安装上项目需求的包的,光安装成功mysql库就弄了很久。后来,是1人同事将他任何python目录打包给自家用,作者才能健康的将项目跑起来。话说,以后有了docker,是何等令人甜蜜的一件事情。

而计划python服务的时候,大家供给在服务器下面安装一堆的包,光是那一点就令人很费力,尽管可以透过puppet,salt那几个自动化工具消除陈设难点,但相比较而言,静态编译语言只用扔3个二进制文件,可就有益太多了。

我们明日依照 glibc 所处的 host
版本差别有2套编写翻译环境,看上去是陈设简单了,编写翻译起来坑死你。此外即便说
disk 便宜,这几行代码就几M了,集群同步计划耗费时间在好几情状下还真会出篓子。

GC,java的GC发展20年了,go才这样点时间,gc铁定不完善。所以大家依然不可能随意的写代码,不然在大请求量上面gc或许会卡顿整个服务。所以有时,该用对象池,内部存款和储蓄器池的自然要用,纵然代码丑了点,但好歹品质上去了。

其实异步模型最大的题材在于代码逻辑的隔离,因为是事件触发的,所以大家都以透过callback进行相关处理,于是代码里面就平日现身干一件业务,传一个callback,然后callback里面又传callback的情形,那样的结果正是一切代码逻辑非凡混乱。

那其实是 Go style,无论是 go fmt 照旧 error style,Go
其实是想抹平分歧工程师之间的风骨难题。不再为了二个缩进和大括号地方怎么的浪费时间。这种情势并不是不好,只是自身个人认为没
rust 那种再次来到值处理友善。

一路形态写异步,在 Python
实力强的合营社内部早普及了,那是个工程难题,并非语言难题。当然把那种事怪在
Python 身上,Python:怪小编咯?

实际,Python 有宏能够绕开那些GIL,但是呢架构划设想计得好其实能够幸免的,到异步那块小编会说。

天然的互相支持,因为goroutine以及channel,用go写分布式应用,写并发程序极度的不难。没有了蛋疼的callback导致的代码逻辑割裂,代码逻辑都是逐一的。

error,可以吗,假使有语言洁癖的同班恐怕确实受不了go的语法,特别是预定的尾声2个再次回到值是error。

支出功效,就算go是静态语言,但我个人感觉开发效能确实挺高,直觉上边跟python连镳并驾。对于自己个人来说,最好的例证就是本人用go快捷支付了很是多的开源组件,譬如ledisdb,go-mysql等,而这个最开首的版本都以在十分的短的年华里面实现的。对于大家项目来说,大家也是用go在7个月就重构完结了第3个版本,并揭露。

实际上那个平昔是不少人吐槽python的地点,可是想想,python最发轫是为着化解什么难点而被开发出来的?大家正是要将她用到高质量服务器开发方面,其实也是有点难为它。

因而那是个工程难题,并非语言难题。 Python
提要求了您了那般多工具,硬要选一个古板的,Old fashion
的,Python:怪作者咯?

以此还真不是,假使说没有 ES6 的 JavaScript,大概真有 Callback
hell,但这是 Python 啊!Python 早就实现了左值绑定唉,yield
那架式比某个时刻吹的言语不领会高到哪个地方去了,当然笔者说的是完好版的 Python3
yield。即就是不完全的 Python 2 yield
用以异步表明式求值也是截然丰盛的,tornado 的 gen.coroutine 啊。

python没有原生的协程协理,就算能够通过gevent,greenlet那种的上patch方式来帮忙协程,但总归更改了python源码。其它,python的yield也能够展开简易的协程模拟,但说到底不能够跨堆栈,局限性非常的大,不精晓3.x的版本有没有创新。

大家明天依照 glibc 所处的 host
版本分裂有2套编写翻译环境,看上去是布置不难了,编译起来坑死你。别的纵然说
disk 便宜,这几行代码就几M了,集群同步计划耗费时间在一些境况下还真会出篓子。

曾经今日头条有个帖子问 Python
会不会稳中有降程序员编制程序能力
,笔者只可以说那实在很人有关。你不去商讨深层次的东西怪语言分外是没道理的,那好,Go
里面 goroutine 是怎么落实的,三个带 socket 的 goroutine
最小能不辱职务多少内部存款和储蓄器,思考过?任何语言都有友好的优势和劣势,都亟待执行者本身去判断,一味的认为简单就不会深远思考那是有失水准的。此外,代码混乱笔者觉得照旧工程上的控制力不够,豆瓣有超过常规10W行的
Python 达成,固然不说很完美,大体上做到了不会混杂这么个目的。

恩看了那篇笔者怎么从python转向go,看来作者也是
KSO
轻办公/公司快盘共青团和少先队的。作为快盘从无到有一代的工程师之一(总是被洒脱哥说他们改笔者留给的
bug ),又恰好是 Python/Go 双修(灰霾其实本人是 Rust
党),其实一发轫我是不容的,duang duang duang,那就顺手写一些把。

恩看了那篇本人何以从python转向go,看来小编也是
KSO
轻办公/公司快盘团队的。作为快盘从无到有一代的工程师之一(总是被罗曼蒂克哥说他们改作者留下的
bug ),又恰恰是 Python/Go 双修(灰霾其实作者是 Rust
党),其实一开头笔者是不容的,duang duang duang,那就随手写一些把。

虽说tornado是异步的,不过python的mysql库都不协助异步,那也就代表一旦大家在tornado里面访问数据库,咱们如故大概面临因为数据库难题导致的漫天服务不可用。

当自己先是次选取python开发品种,小编是没得逞安装上种类必要的包的,光安装成功mysql库就弄了很久。后来,是一个人同事将她全体python目录打包给自家用,作者才能健康的将品种跑起来。话说,未来有了docker,是何其令人幸福的一件工作。

而安排python服务的时候,我们必要在服务器下边安装一堆的包,光是那一点就令人很麻烦,即使能够经过puppet,salt这几个自动化学工业具解决安顿难点,但比较而言,静态编写翻译语言只用扔二个二进制文件,可就有益太多了。

比方估量没错,你们未来还在用五年前写的 Gateway?那些基于 django route
的流量分发层?四年前我离开的时候已经小范围的选取 Flask+Gevent 德姆o
测试过了,无论是质量照旧负载都比同步模型的 django 有优势。假诺依旧django
那套的话,小编只能说比较遗憾,终归那时候金山新职员和工人业余大学学赛头牌就是我和多少个小伙伴写的实时同步在线文书档案编辑系统,用的便是那套技术。

协助进行模型并非不行,因为 overhead
丰盛低,很多事务场景下用同步模型反而会收获更好的功能,比如豆瓣。同步模型最大的难点是对此
IO 密集型业务等待时间丰硕长,那时候供给的不是换语言
,而是提示您是或不是架设要改一下了。

go 的支付成效高是相比较 C,相比 python,大约后者只供给3天呢……

随便 Gevent 依然 格林let 均没修改 Python 源码,事实上那货已经成为了
Py2 coroutine
的标准,加上豆瓣开源出来的greenify,基本上全体的库都能够平滑的异步化,包蕴MySQL 等 C 顶尖的 lib。自从用上那套技术后,豆瓣的 Python dev
种种爽得不要不要的。

手拉手形态写异步,在 Python
实力强的专营商里面早普及了,那是个工程难点,并非语言难点。当然把那种事怪在
Python 身上,Python:怪小编咯?

运营铺排,直接编写翻译成二进制,扔到服务器上面就成,比python须要设置一堆的条件那是归纳的太多了。当然,要是有cgo,大家也亟需将相应的动态库给扔过去。

其实异步模型最大的难点在于代码逻辑的隔断,因为是事件触发的,所以大家都以因此callback举办有关处理,于是代码里面就常常出现干一件事情,传一个callback,然后callback里面又传callback的意况,那样的结果就是一体代码逻辑卓殊混乱。

即使没记错,无论是轻办公大概快盘,是重 IO 不重
CPU,最大耗费时间是数额块加密那块,小编在的时候是 Java
写的。此外高品质服务器选 Go 也是虐得不要不要的,各样行事极为谨慎制止GC。大多数最为情形下,pypy 的习性足矣胜任了,作者觉着那不算丰盛规范。

django的网络是联合阻塞的,也正是说,倘若我们须要拜访外部的多少个劳务,在守候结果重回那段时日,django不能处理任何其余的逻辑(当然,四线程的除外)。假设访问外部服务需求不长日子,那就表示大家的全体服务差不离在很短一段时间完全不可用。

为了消除那么些标题,我们只好不停的多开django进度,同时要求保证拥有服务都能高效的处理响应,但考虑那实在是一件很不可信赖的事务。

无状态的分布式处理利用多进度很便宜,譬如处理http请求,大家就是在nginx前面挂载了200多个django
server来处理http的,但如此多少个进度自然导致整体机器负载偏高。

但尽管大家应用了多少个django进程来处理http请求,对于一些超多量请求,python照旧处理不东山再起。所以我们选取openresty,将高频次的http请求使用lua来落实。可这么又造成使用三种开发语言,而且有个别逻辑还得写两份分裂的代码。

一段段来吧,首先小编说 Python 是动态语言

tornado 是有其一题材,可是 gevent 已经消除了。笔者在 node.js
的某难题下一度回答过,对于 node 而言,能选取的异步模型唯有一个,而
Python 就是太多采纳了。其余 pypy+tornado+redis
能够随意虐种种长连接的气象,比如自身给小编厂写过的1个 push service。

Openresty 用 lua
借使遵照动态语言的角度去看,还真算不上,顶多是个差不多点的
C。许式伟走的时候当先二分之一都以CPP,葱头近期自身还不精通他创业用的是何许写的,可是她必定没言语倾向。当年随便
leo 如故 ufa,1个用 Python 三个用 Java,
他都以从工程实际来抉择采Nash么的言语。

以此还真不是,如若说没有 ES6 的 JavaScript,恐怕真有 Callback
hell,但那是 Python 啊!Python 早就落成了左值绑定唉,yield
那架式比某个时刻吹的语言不知道高到何地去了,当然小编说的是完全版的 Python3
yield。即正是不完全的 Python 2 yield
用来异步表达式求值也是一心丰硕的,tornado 的 gen.coroutine 啊。

不论 Gevent 照旧 格林let 均没修改 Python 源码,事实上那货已经变为了
Py2 coroutine
的正经,加上豆瓣开源出来的greenify,基本上全体的库都能够平滑的异步化,包涵MySQL 等 C 超级的 lib。自从用上那套技术后,豆瓣的 Python dev
各样爽得不要不要的。

python十一分灵活简单,写c几十行代码才能消除的功能,python一行代码没准就能缓解。可是太简单,反而导致众多同校不能够对代码举行深层次的讨论,对一切架构进行周到的勘察。来了一个需要,啪啪啪,键盘敲完开速实现,结果就是代码越来越混乱,最后导致了全体项目代码失控。

恰恰笔者又是在付出基于 docker 的阳台, docker
还真不是用来做安插那事的。首先, Python 是有 virtualenv
那个工具的,事实上相比较包管理和包隔开分离,Python 比 Go
高得不精晓何地去了。Python 跟 Git 谈笑风生的时候, Go 的 dev
们还得考虑本人怎样才能使得 import
的包稳定在三个版本上(当然以往有众多第3方方案)。Virtualenv + Pip
完全能够实现 Python
布置自动化,所以那个难点小编觉得是,工具链选择难题。终归是个十几年的老妖怪了,Python
啥意况没见过啊,各样包裹工具任君选择,强行说 Python
安插不便宜,Python:怪笔者咯?

还有,C 写几十行化解的 Python 一行消除那相对是至关心珍贵要
feature,生产力啊,职员配置啊,招人作育的花费啊,从工程上的话,Python
在这一块完全是加分项,不是各样项目都供给最好的出现,极致的频率,做工程很多时候都是要取舍的。

尽管如此java和php都是最好的编制程序语言(大家都这么争的),但自身更赞成一门更简短的言语。而openresty,即便品质强悍,但lua依旧是动态语言,也会际遇前边说的动态语言一些题材。最终,前金山许式伟用的go,前快盘架构师葱头也用的go,所以大家很自然地挑选了go。

go 的付出效能高是对比 C,相比 python,大概后者只须求3天吧……

自身不谨慎的实地度量大概 gevent+py2 能达到规定的标准同等逻辑 go 达成的
3/10~40%,pypy+tornado 能达到
80%~百分之九十,混合了一些测算和连续处理什么的。首要仍然看工作场景呢,纯粹的
CPU bound 当然是 go 好,纯粹的 IO bound 你正是用 C 也没用啊。

Openresty 用 lua
假若根据动态语言的角度去看,还真算不上,顶多是个简单题的
C。许式伟走的时候大多数都是CPP,葱头近来自身还不清楚他创业用的是什么写的,可是她必然没言语倾向。当年不论
leo 还是 ufa,贰个用 Python 一个用 Java,
他都以从工程实际来抉择使用什么的言语。

无状态的分布式处理利用多进度很便利,譬如处理http请求,我们正是在nginx前面挂载了200多少个django
server来处理http的,但如此七个进程自然导致全体机器负载偏高。

但就算大家选择了三个django进度来处理http请求,对于部分超多量请求,python照旧处理不东山再起。所以我们应用openresty,将高频次的http请求使用lua来贯彻。可那般又造成使用二种开发语言,而且有个别逻辑还得写两份不相同的代码。

天性,go的性质或者赶不上c,c++以及openresty,但确实也挺强悍的。在大家的档次中,未来单机就布置了二个go的经过,就全盘能够独当一面在此以前200个python进度干的政工,而且CPU和MEM占用更低。

还有,C 写几十行消除的 Python 一行化解那纯属是关键
feature,生产力啊,职员配备啊,招人培养的资本啊,从工程上来说,Python
在这一块完全是加分项,不是种种项目都须要极其的产出,极致的作用,做工程很多时候都以要取舍的。

实则那一个向来是无数人吐槽python的地点,不过想想,python最初步是为了消除什么难点而被支付出来的?大家正是要将他用到高质量服务器开发方面,其实也是有点难为它。

此外,函数作为第三目的,在 Python 中是 feature,Go 要写个
mock,简直虐得不要不要的。

python的GIL导致导致不能真正的四线程,大家恐怕会说作者用多进程不就完了。但假如有的划算必要涉及到多进度并行,进度之间的报导支出也是只好考虑的。

python的GIL导致导致力不从心真正的四线程,我们只怕会说自身用多进度不就完了。但要是部分乘除要求涉及到多进度并行,进程之间的通信支出也是只好考虑的。

作者 CMGS 2015.05.17
15:47*

python相当灵活简单,写c几十行代码才能解决的功用,python一行代码没准就能化解。不过太不难,反而造成不可胜举同桌不能够对代码举行深层次的考虑,对任何架构进行仔细的考虑衡量。来了一个须要,啪啪啪,键盘敲完开速落成,结果便是代码越来越混乱,最后造成了全套项目代码失控。

不问可见,Go 不是倒霉,Python
也不是相当,做工程嘛,无外乎便是考虑资金财产,时间费用,人力财力,维护资金等等。
Go 和 Python 互有千秋,就看取舍了。当然一定要说 Python
不行,Python:怪笔者咯?

那是有代价的,goroutine
的内部存款和储蓄器消耗计算(当然1.3依旧1.4起来获得了相当的大的精益求精,内存最小值限制已经没了),channel
跨线程带来的质量损耗(跨线程锁),还有对 goroutine 的控制力差不多为 0
等。总而言之这种嘛,算不上是杀手级性子,大家都有,是便利了一点,但也有温馨的弊端。比如大家用
go 吧,平日就比较蛋疼 spawn 出去的 goroutine 怎么精粹的
shutdown,反而有时候把业务做复杂化了。

写了7891字,被143人关注,获得了97个喜欢

一度和讯有个帖子问 Python
会不会下落程序员编制程序能力
,小编不得不说那真的很人有关。你不去思维深层次的事物怪语言十分是没道理的,那好,Go
里面 goroutine 是怎么落到实处的,1个带 socket 的 goroutine
最小能做到多少内部存款和储蓄器,思考过?任何语言都有温馨的优势和劣势,都必要执行者本人去看清,一味的觉得简单就不会深远思考那是有标题标。其余,代码混乱笔者觉着依然工程上的控制力不够,豆瓣有当先10W行的
Python 实现,就算不说很完善,大体上到位了不会混杂这么个对象。

赶巧小编又是在开发基于 docker 的平台, docker
还真不是用来做布置那事的。首先, Python 是有 virtualenv
这几个工具的,事实上相比包管理和包隔开分离,Python 比 Go
高得不知情何地去了。Python 跟 Git 谈笑风生的时候, Go 的 dev
们还得考虑自身怎么着才能使得 import
的包稳定在二个本子上(当然以往有成百上千第3方方案)。Virtualenv + Pip
完全能够落成 Python
铺排自动化,所以那一个难点作者以为是,工具链选取难题。毕竟是个十几年的老妖魔了,Python
啥景况没见过呀,各个包裹工具任君接纳,强行说 Python
铺排不便宜,Python:怪笔者咯?

支出效能,即便go是静态语言,但自个儿个人感觉开发效能的确挺高,直觉上边跟python方驾齐驱。对于本人个人来说,最好的例证正是自家用go火速支付了卓殊多的开源组件,譬如ledisdb,go-mysql等,而那几个最初叶的本子都以在非常短的小运里面达成的。对于大家项目来说,大家也是用go在贰个月就重构完结了第多少个版本,并揭露。

纵然如此tornado是异步的,可是python的mysql库都不匡助异步,那也就象征一旦我们在tornado里面访问数据库,大家照例大概面临因为数据库难点导致的全数服务不可用。

联机模型并非不行,因为 overhead
足够低,很多政工场景下用同步模型反而会收获更好的功能,比如豆瓣。同步模型最大的标题是对此
IO 密集型业务等待时间丰盛长,那时候需求的不是换语言
,而是提示您是否架设要改一下了。

实则,若是是静态检查,pylint 和 pyflakes 是可以做那件事的,固然无法和
go
那种静态编写翻译型语言比,但也丰硕了。借使没记错的话,阿通当年是要求全组都在交付前做静态检查的。作者以为那种题材更加多的相应是人士素质上来制止,终究葱头也说过,代码自个儿写的即将多回头看看,看能或无法重构,能还是不能够做更好。不是说偷懒不行,可是从中汲取
Python 动态性情太灵活,Python:怪小编咯?

简而言之,Go 不是倒霉,Python
也不是那多少个,做工程嘛,无外乎就是考虑资金,时间开销,人力成本,维护费用等等。
Go 和 Python 互有千秋,就看取舍了。当然一定要说 Python
不行,Python:怪笔者咯?

那是有代价的,goroutine
的内部存款和储蓄器消耗计算(当然1.3照旧1.4开首获得了相当的大的咬文嚼字,内部存储器最小值限制已经没了),channel
跨线程带来的属性损耗(跨线程锁),还有对 goroutine 的控制力大致为 0
等。综上说述那种嘛,算不上是杀手级脾性,我们都有,是惠及了某个,但也有友好的坏处。比如我们用
go 吧,平时就相比蛋疼 spawn 出去的 goroutine 怎么精彩的
shutdown,反而有时候把事情做复杂化了。

故而那是个工程难题,并非语言难题。 Python
提须求了你了如此多工具,硬要选一个观念的,Old fashion
的,Python:怪笔者咯?

虽说java和php都以最好的编制程序语言(大家都如此争的),但自身更倾向一门更不难的语言。而openresty,就算品质强悍,但lua依然是动态语言,也会遇上前面说的动态语言一些题材。最终,前金山许式伟用的go,前快盘架构师葱头也用的go,所以我们很自然地选拔了go。

假使没记错,无论是轻办公可能快盘,是重 IO 不重
CPU,最大耗费时间是数据块加密那块,笔者在的时候是 Java
写的。其余高品质服务器选 Go 也是虐得不要不要的,各个战战兢兢制止GC。抢先5/10最为景况下,pypy 的属性足矣胜任了,作者以为那不算足够规范。

1.4 起始 go 正是 百分百 精确 GC
了,其余说到卡顿啊,完全和您怎么用对象有关,能内联绝不传引用大多数场景是一点一滴够用的,那样
gc 的影响程度会低于。实在想用池……只好说为啥不选 Java。

字数3748 阅读24227 评论21 喜欢81

自笔者不审慎的实地衡量大约 gevent+py2 能达成相同逻辑 go 完结的
三成~40%,pypy+tornado 能达到
80%~9/10,混合了一部分划算和连接处理什么的。首要如故看工作场景吧,纯粹的
CPU bound 当然是 go 好,纯粹的 IO bound 你就算用 C 也没用啊。

python是一门动态语言,不是强类型系统。对于一个变量,我们有时压根不清楚它是怎么品种,然后就可能出现int

  • string那样的运作时不当。

在python里面,可以允许同名函数的面世,后二个函数会覆盖前叁个函数,有壹次大家系统2个很惨重的一无可取正是因为那几个导致的。

相关文章