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 的优点就是生态环境, 我也是看中这点...

19589 次点击
所在节点    Python
156 条回复
keysona
2017-09-12 09:43:05 +08:00
有点好笑啊。


刚看了流畅的 python,里面对 python 这种 magic method 是持赞赏态度的,看完我也这么觉得。

结果在这里看到完全不同的观点。

哈哈,前后端通写的我也觉得 js 不爽,有很多奇怪的情况,这些不一致,有违直觉的结果也让我也不爽啊。
airborne007
2017-09-12 09:43:26 +08:00
不吹不黑,js 就是个垃圾语言。
fy
2017-09-12 09:45:12 +08:00
总结下问题:为啥 python 语言写法和 js 不一样?和我习惯的不同,怎么可以这样?
keysona
2017-09-12 09:46:06 +08:00
缩进真不是个问题。

单纯是个习惯,刚开始不习惯觉得不爽我觉可以接受。

当你去看别人几万几万行的代码,你就会明白缩进有多重要了。
bramblex
2017-09-12 09:46:31 +08:00
js 和 python 比我当然站 js。

毕竟 js 有 typescript,你 Python 没有 typethon 啊!
qdzzyb
2017-09-12 09:46:47 +08:00
python 难道不是应该这么写 `arr = [i * 2 for i in arr]`
imn1
2017-09-12 09:47:02 +08:00
@Chingim #57

object.__len__(self)

Called to implement the built-in function len(). Should return the length of the object, an integer >= 0. Also, an object that doesn ’ t define a __bool__() method and whose __len__() method returns zero is considered to be false in a Boolean context.
keysona
2017-09-12 09:49:43 +08:00
rocksolid
2017-09-12 09:50:11 +08:00
换 python2 就好了
keysona
2017-09-12 09:50:25 +08:00
@airborne007

es6 的 js,写起来舒服多了。

之前的简直是个噩梦!
Chingim
2017-09-12 09:54:41 +08:00
@imn1 没错啊, len() 调用 __len__
airborne007
2017-09-12 09:54:55 +08:00
@keysona 然而 es6 很多东西也是抄 Python 的,再说,要兼容 IE 大哥呢,es6 不是你想用就能用。
recall704
2017-09-12 09:55:27 +08:00
习惯就好,刚学的时候恨不得自己加上 {},然后再用程序去掉。
keysona
2017-09-12 09:55:29 +08:00
脚本语言鄙视链。


ruby -- python -- js

谁也不服谁。
bramblex
2017-09-12 09:56:00 +08:00
@keysona
类型约束,类型检查,函数类型,高阶类型。就连 typescript 的类型系统,我现在还觉得太智障,更别说 python 的这种玩具级别了。
keysona
2017-09-12 09:57:05 +08:00
@airborne007

写前端,自觉砍掉 ie。

只兼容最新的 chrome & firefox。
sunzhenyucn
2017-09-12 09:58:45 +08:00
简单,觉得不好不用就是了。
大概 JS 不是`})})})})};`?(逃
Chingim
2017-09-12 10:02:18 +08:00
@mimzy 意思是说用全局的 len() 用来 "getting the length is simply read from a field in a C struct." 吗?
那么为什么 arr.len() 不能用来做同样的事情呢? 我的意思是 python 的内置数组为什么没有添加一个 len 方法, 然后用这个方法去读取 C 结构体的字段呢? arr.len() 更 OO 不是吗

如果理解有误, 请指正
keysona
2017-09-12 10:02:55 +08:00
@bramblex

额,我个人不是很喜欢在动态语言加上类型。也许没经历过大项目吧。

总感觉怪怪的。
Miy4mori
2017-09-12 10:03:23 +08:00
@kenshinji 今年已经是 2017 年啦,该不会还拿记事本写 Java 吧?

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

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

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

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

© 2021 V2EX