C++/C# 程序员转 Python 的困惑

2016-06-28 10:21:18 +08:00
 4ever911
以前一直用 Visual Studio 写 C++/C#程序, 对于这些强类型的语言, VS 很容易找到所有的类型定义,自然也在代码提示上做得很棒。 但是对于 Python , 在编写的时候,我总需要旁边再放一台电脑,随时要查询某个对象的方法和属性以及如何去调用。 虽然我已经下载了 PyCharm 作为IDE,对我自己编写的类型以及函数提示还行,但是对于 import 的库,以及他们的返回值类型好像就无能为力了。

难道作为 Python , JS 这些弱类型的语言,大家编写代码都是靠脑袋来记的吗?是不是我错过了什么。。。。。。
8641 次点击
所在节点    Python
68 条回复
lxian2
2016-06-28 10:23:59 +08:00
同感
WangYanjie
2016-06-28 10:27:39 +08:00
有代码提示的功能,比如说 jedi ,不过讲实话的话,我是靠记的
hyq
2016-06-28 10:30:39 +08:00
ipython 之类的交互界面,创建对象后,可以动态获取对象上的方法
practicer
2016-06-28 10:31:08 +08:00
我一般把标准库 pdf 格式的文档下载下来,写代码时遇到不记得了随时查,平时没事时也常翻,不知道这姿势正不正确
exoticknight
2016-06-28 10:31:29 +08:00
多用,熟悉起来就行
SpicyCat
2016-06-28 10:38:12 +08:00
> 难道作为 Python , JS 这些弱类型的语言,大家编写代码都是靠脑袋来记的吗?是不是我错过了什么
是的,不过也不全是。 Python , JS 的代码提示是不可能做到像 Java , C/C++, C# 那种级别的。但是很多 IDE 也提供了部分代码提示,就是不够强罢了。
一般是记个大概,用的时候查。
justou
2016-06-28 10:40:02 +08:00
@practicer
一般是打印出来放在枕头下面, 寂寞的时候翻一翻 2333
lonelinsky
2016-06-28 10:45:39 +08:00
深感如此,作为用 vim 写 python 的一员,用了 pep8 , pyflakes , pydoc , py.test 插件,能提示一些基本的错误,如定义未使用,语法错误, import 未使用等,但还是经常发现有些方法或者属性写错了(属性名写错,对象层级写错),还经常要到运行的时候才能发现(嗯,现在的代码测试用例写得比较少),很是不爽 =。=
northisland
2016-06-28 10:46:47 +08:00
print(function.__doc__)
我的做法
4ever911
2016-06-28 10:50:32 +08:00
@northisland

>>>import XXX
>>>print(xxx.__doc__)
None


......
afpro
2016-06-28 10:53:23 +08:00
有个东西叫 type hint
clino
2016-06-28 10:56:41 +08:00
@4ever911
>>> import os
>>> print dir(os)
4ever911
2016-06-28 10:59:52 +08:00
xxx.__doc__

dir(xxx)

新技能 Get
wangdashuai
2016-06-28 11:02:32 +08:00
bpython 的补全还是很厉害的.可惜不能上图.
est
2016-06-28 11:05:11 +08:00
LZ 的意思是比如 def my_func(obj_a, obj_b) 然后你写 my_func 的时候并不能知道 obj_a 或 obj_b 是什!么!鬼!
eliteYang
2016-06-28 11:09:21 +08:00
你缺少一个 IDE ,例如 pycharm ,这些东西靠大脑记不太现实
4ever911
2016-06-28 11:16:49 +08:00
@est

是的, 还有, 比如 obj = some_func (xx), 然后我拿着 obj 发愣, 只能去查资料。 如果是以前的 VS 的写法, obj 肯定是有类型的, IDE 会提示我 OBJ 包含哪些方法和类,基本看看名字就知道怎么用了。

而碰到 Python ,我不光第一次需要去查询, 以后如果记得不清晰准确,还得再次去查询。 而 C++这种,我只要记一个大概, 比如我记得有个 caption ,我不用太记清是 get_caption, 还是 getcaption or getcaptionname.....到 ide 的自动提示里面去看看就记起来了。
clino
2016-06-28 11:17:21 +08:00
pycharm 应该比我常用的 ulipad 功能强才对, ulipad 都有这样的功能啊对于标准库来说
ulipad 是用 python 写的,装个 wxpython 库,然后把 ulipad 源代码拿下来就能跑了
Arnie97
2016-06-28 11:18:18 +08:00
traitlets ?
另外, Python 是强类型,不可与 JS 混为一谈。
clino
2016-06-28 11:21:47 +08:00
@4ever911 另外 python 是动态语言,你需要转变思维,静态语言能做到的很多做不了了,就是需要你自己手工去查的

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

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

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

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

© 2021 V2EX