以前写过一段时间的 Java ,现在需要转向 Python 。利用一些时间掌握了一些 Python 的基本语法,接下来需要花一段时间来了解一下常用的 API 。但我觉得更重要的应该是编程思维方式的转变,否则的话完全就相当于是只是重新学了一套 API 与类库的运用方式而已。
V 友众多,肯定有不少前辈也是从 Java 转向 Python ,请问各位前辈能否提供一些经验,由 Java 向 Python 转的时候,哪些编程方面的思路与思维方式需要转变,来写出真正的 Python 代码?
谢谢各位!!
![]() | 1 qqblog 2016-01-17 12:18:41 +08:00 function is first-class object |
![]() | 2 sivacohan PRO import 机制好好看看, Java 里正常到 Python 就是循环引用 基于 module 的 Singleton 看一下。 Python 里实现单例最简单的办法。 看一下 monkey patch 。这东西写框架比较有用。 |
![]() | 3 sivacohan PRO 另外,语言的转换要找个理由。在 Java 中表达力受到了什么限制。希望在 Python 中获得什么。别的就没什么了。 一般来说 Java 换 Python 会经历如下几个过程: 1, 这尼玛也报错? 2, 不错,比 Java 简洁多了 3, 这货咋这么慢,算了,还是用 Java 写这个吧 |
4 mengzhuo 2016-01-17 12:28:42 +08:00 via iPhone 最重要的难道不是列式推到和啥都是对象么? |
![]() | 5 congeec 2016-01-17 12:28:49 +08:00 我不怎么用 java ,不过我知道 idiomatic python 相关的你一定得看看 |
![]() | 6 luikore 2016-01-17 14:08:26 +08:00 忘记设计模式和依赖注入 不要想一个东西是什么类型, 想它能做什么 free form 编辑器比做选择题的 IDE 更有生产力 |
7 jukka 2016-01-17 14:13:08 +08:00 forget OOP |
![]() | 8 233 2016-01-17 14:35:51 +08:00 有本书叫 <dive into python>?好像这名字。 书本身争议比较大,但讲解方法的确是和 java 一类语言对比着讲的 |
![]() | 10 lcqtdwj 2016-01-17 16:28:56 +08:00 鸭子类型 |
![]() | 11 funky 2016-01-17 17:03:39 +08:00 鸭子辩型 |
![]() | 12 ming2050 2016-01-17 17:05:48 +08:00 via Android 感觉没啥太大的区别 |
![]() | 13 wizardoz 2016-01-17 17:29:21 +08:00 从强类型到动态类型,一些本来需要定义几个类来实现的设计模式不再需要了。 |
![]() | 15 wizardforcel 2016-01-17 18:14:31 +08:00 为什么要写出真正的 python 代码?和语言绑定太死的话迁移困难。 |
![]() | 16 Ouyangan 2016-01-17 19:08:32 +08:00 实践出真知 ,工作 java 业余看看 go ,共勉之 |
![]() | 17 wizardforcel 2016-01-17 19:17:41 +08:00 @wizardoz 准确的说是一部分接口不需要了。反正访问属性都是动态查找的。 |
![]() | 19 Owenjia 2016-01-18 01:28:06 +08:00 |
![]() | 20 skyworker 2016-01-18 10:06:25 +08:00 @sivacohan “慢”其实不是问题,目前大部分应用的瓶颈其实在数据库里面。 SQL 查询需要 400ms , java 循环需要 40ms; SQL 查询需要 400ms , python 循环需要 80ms; 440ms 和 480ms 差别很大吗? |
![]() | 21 skyworker 2016-01-18 10:07:57 +08:00 @sivacohan 当然,你纯跑一个不涉及 sql 操作的 1w 遍的 benchmark , java 和 python 差别很大;但是生产系统上的瓶颈大部分都在 sql 上 |
![]() | 22 tanywei 2016-01-18 14:37:06 +08:00 凡事不先写 Class |