js 党可以吐槽一下 Python 吗

2017-09-12 00:49:17 +08:00
 sensui7

缩进真的不习惯, map 返回的竟然是一个迭代器, 也许这就是大佬吧, 匿名函数 还要写 lambda 这么长的单词, 列表的长度还要用 len 函数而不是 len 属性, 您的列表到底是不是对象呢? 要不是对象您的 append 方法又是怎么回事? 我大 js

js:
arr.map(x => x*2)
python:
list(map(lambda x: x*2, arr))

非引战, python 的优点就是生态环境, 我也是看中这点...

19590 次点击
所在节点    Python
156 条回复
YYYeung
2017-09-12 10:03:38 +08:00
缩紧还好,就是在 Python 里面没有 js 那种闭包写法感觉有点不习惯
ThinkCat
2017-09-12 10:04:49 +08:00
coffeescript, 一箭双雕, 既有了 js,也有了 python 缩进 ,语法还精简
keysona
2017-09-12 10:05:03 +08:00
@Miy4mori

虽然是 2017 年了,但是不用 ide,我还真不会写 java。
reus
2017-09-12 10:10:17 +08:00
引战就是引战,不是你一句“非引战”就不是了。

非常讨厌楼主这种人
wizardoz
2017-09-12 10:10:25 +08:00
如果一种语言很烂,它的生态环境如何会好?
lrxiao
2017-09-12 10:12:08 +08:00
缩进要是和 Haskell 一样提供两种方式就好了:(
lrxiao
2017-09-12 10:12:18 +08:00
就没有这么多战争了
lrxiao
2017-09-12 10:15:13 +08:00
@NoAnyLove 匿名函数不只在 FP 里用的多..实际上基本上语言都能写很优雅的 lambda Py 的 lambda 很弱
bramblex
2017-09-12 10:16:48 +08:00
@keysona

好的类型系统是避坑神器,尤其是代码量大逻辑复杂的时候。

而且是写这种动态语言的时候,哪怕没有类型系统,其实在写代码的时候自己脑子里还是需要开一个静态检查,真的很累的。类型系统就是把脑子里的那个静态检查让程序去做了而已。
bramblex
2017-09-12 10:17:43 +08:00
@ThinkCat

coffee 作者已经明确说明不继续加新特性,并且推荐大家写 es6 了
bramblex
2017-09-12 10:18:35 +08:00
@airborne007 不吹不黑,python 这种垃圾语言,抄我 Haskell 还抄那么丑。
xiaomeimei
2017-09-12 10:19:16 +08:00
两个都写,也没有好坏,不过,不管编辑器如何好,js 回调太多,层次很深的时候,就不好区分块了。所以写 js 尽量不要写太深的嵌套,3 层是最多的。
mooncakejs
2017-09-12 10:19:20 +08:00
@lovestudykid
js 已经有了 promise,n 层的括号已经是过去式了。 相反 py 定义一个匿名函数都要持续缩进
@ox180
之前公司共享书籍上,py 的都是点了````来表示空格个数 2333.
bramblex
2017-09-12 10:20:13 +08:00
@lrxiao

Haskell 的缩进其实是很复杂的,我尝试过实现 haskell style 的 parser,解析的真心复杂。
imn1
2017-09-12 10:21:33 +08:00
@Chingim #71
好吧,我前面写错了,写了__len__()方法,而不是__len__属性
len()调用的是方法,而不是属性

__len__属性,返回的也可能是个对象,__len__()方法返回的是值,两者调用性质不同
https://stackoverflow.com/questions/20302558/why-python-function-len-is-faster-than-len-method


In [19]: b=[[1,2,3]]

In [20]: b.__len__
Out[20]: <method-wrapper '__len__' of list object at 0x7f6032f6b0c8>

In [21]: len(b)
Out[21]: 1

In [22]: b[0].__len__
Out[22]: <method-wrapper '__len__' of list object at 0x7f60335d63c8>

In [23]: b[0].__len__()
Out[23]: 3
cbiqih
2017-09-12 10:22:36 +08:00
Java 转 Python 的我,写 Python 感觉一种莫名的爽~
Kisesy
2017-09-12 10:26:36 +08:00
@bramblex 想要类型检查,可以写 pyx 啊,可以用 C 编译器编译,py 的语法,C 的速度
jtsai
2017-09-12 10:28:56 +08:00
@cbiqih 圣战转到了 java,我跟你一样,感觉多活了几年。
iFlicker
2017-09-12 10:31:15 +08:00
就我一个很喜欢 Python 这种缩进风格的么?
zhangsen1992
2017-09-12 10:47:33 +08:00
js 才混乱吧,});});});});});

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389926

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX