一个Java程序员对 Python的爱与恨

    本人之前一直从事JAVA开发,自从转来用python做CV,做了一段时间后,感触繁多。对Python又爱又恨。

爱Python

1、脚本语言,不需要编译,不想Java,如果你本地少了一些包,即使你改了代码也无法编译,那么就无法进行测试。

2、不需要很多的括号,同个代码块,只需要对齐即可。

3、弱变量类型。变量使用不需要先定义,后使用。

4、代码比Java封装性更强,更加简洁。例如print 和java中的 System.out.println() 区别还是很大的。

5、库非常丰富,且封装不错。

恨Pyhon

1、弱变量类型。一个方法返回的一个对象,你在拿到这个对象后,按下. 却发现DEA一点提示都没,这个真的比较难受,相较于之前习惯了Java编码习惯的程序猿来说  ,真的真的是很痛苦的一件事情。

2、代码不需要括号。代码不需要括号是一件很好的事情,但是有时候你不心不是在集成开发环境上动了一下代码,然后直接就报错了,而且那个错有时候莫名其妙,这个对新手来说,或者对从其他语言转过来的人来说,可能是比较蓝瘦的事情。

3、丰富的库, 但是不少底层是用C++。 Python有非常丰富的库,但是有些库底层C++实现的,Python仅仅是包了一层,所以有时候你想去看看如何事先,不好意思,看不了。

4、注释,参数说明不够详细。我接触过python一段时间,发现python的代码注释不够丰富,虽然说写一手好代码,就是最好的注释,但是如果能多点注释也算是锦上添花。

5、弱变量类型。还是想吐槽下,目前自己的水平不够,还是觉得这个弱变量类型给我带来了很多不便。例如,我发现一个类,我本地是看不到他的方法的,但是在环境上却能跑。估计就是我说的那个问题,因为开发环境不知道这个变量是哪个类型所以无法给你提示,所以我有时候真的是在瞎试。例如一个 对象有时候查看他的size 使用size() 有时候却是用size,一个是方法,一个是属性,这个要根据你这个对象的类型来决定。现在最影响我开发效率也是这个问题,希望我早日解决!!然后可以跟大家分享经验。

 

遇上遇到的很多问题,当然跟自己水水平还是有很大关系。如果我罗列的问题的朋友,请多多给点建议 !非常感谢!!!

 

 

为了更清楚描述我说的情况,我将举一下例子。

情况一

我将一个numpy.ndarray类型的值转成tensor ,并赋给了 nump_2_tensor,但是下面在使用这个变量的时候DEA是没有任何提示的,原因很简答,因为DEA根本不知道nump_2_tensor的类型是tensor

一个Java程序员对 Python的爱与恨_第1张图片

 

情况二

还是上面的例子,我将一个numpy.ndarray类型的值转成tensor ,并赋给了 nump_2_tensor,现在我想直接在这个值后面对这个转换后的变量进行操作,但是发现也是没有任何提示,估计是tensor(nump)这个方法返回不明确?

这个不提示我真没想明白请各路大神指点迷津 !!!

一个Java程序员对 Python的爱与恨_第2张图片

你可能感兴趣的:(开发人生,python)