• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hellogbk
V2EX  ›  程序员

由 Java 转向 Python,思维方式与思路应该有哪些方面的转变?

  •  2
     
  •   hellogbk · Jan 17, 2016 · 5987 views
    This topic created in 3952 days ago, the information mentioned may be changed or developed.

    以前写过一段时间的 Java ,现在需要转向 Python 。利用一些时间掌握了一些 Python 的基本语法,接下来需要花一段时间来了解一下常用的 API 。但我觉得更重要的应该是编程思维方式的转变,否则的话完全就相当于是只是重新学了一套 API 与类库的运用方式而已。

    V 友众多,肯定有不少前辈也是从 Java 转向 Python ,请问各位前辈能否提供一些经验,由 Java 向 Python 转的时候,哪些编程方面的思路与思维方式需要转变,来写出真正的 Python 代码?

    谢谢各位!!

    22 replies  •  2016-01-18 14:37:06 +08:00
    qqblog
    qqblog
    Jan 17, 2016
    1
    function is first-class object
    sivacohan
    sivacohan
    Jan 17, 2016 via Android
    2
    import 机制好好看看, Java 里正常到 Python 就是循环引用
    基于 module 的 Singleton 看一下。 Python 里实现单例最简单的办法。
    看一下 monkey patch 。这东西写框架比较有用。
    sivacohan
    sivacohan
    Jan 17, 2016 via Android
    3
    另外,语言的转换要找个理由。在 Java 中表达力受到了什么限制。希望在 Python 中获得什么。别的就没什么了。
    一般来说 Java 换 Python 会经历如下几个过程:
    1, 这尼玛也报错?
    2, 不错,比 Java 简洁多了
    3, 这货咋这么慢,算了,还是用 Java 写这个吧
    mengzhuo
    mengzhuo
    Jan 17, 2016 via iPhone
    4
    最重要的难道不是列式推到和啥都是对象么?
    congeec
    congeec
    Jan 17, 2016
    5
    我不怎么用 java ,不过我知道 idiomatic python 相关的你一定得看看
    luikore
    luikore
    Jan 17, 2016
    6
    忘记设计模式和依赖注入

    不要想一个东西是什么类型, 想它能做什么

    free form 编辑器比做选择题的 IDE 更有生产力
    jukka
    jukka
    Jan 17, 2016
    7
    forget OOP
    233
    233
    Jan 17, 2016
    8
    有本书叫 <dive into python>?好像这名字。
    书本身争议比较大,但讲解方法的确是和 java 一类语言对比着讲的
    hbkdsm
    hbkdsm
    Jan 17, 2016
    9
    @luikore 请问从 JavaScript 转向 Ruby ,思维方式与思路应该有哪些方面的转变?
    lcqtdwj
    lcqtdwj
    Jan 17, 2016
    10
    鸭子类型
    funky
    funky
    Jan 17, 2016
    11
    鸭子辩型
    ming2050
    ming2050
    Jan 17, 2016 via Android
    12
    感觉没啥太大的区别
    wizardoz
    wizardoz
    Jan 17, 2016
    13
    从强类型到动态类型,一些本来需要定义几个类来实现的设计模式不再需要了。
    GNiux
    GNiux
    Jan 17, 2016 via iPhone
    14
    @233 刚下了它这 04 年的版本, python 2 ,不知有没更新跟进……
    wizardforcel
    wizardforcel
    Jan 17, 2016
    15
    为什么要写出真正的 python 代码?和语言绑定太死的话迁移困难。
    Ouyangan
    Ouyangan
    Jan 17, 2016
    16
    实践出真知 ,工作 java 业余看看 go ,共勉之
    wizardforcel
    wizardforcel
    Jan 17, 2016
    17
    @wizardoz 准确的说是一部分接口不需要了。反正访问属性都是动态查找的。
    233
    233
    Jan 17, 2016
    18
    @GNiux 应该够呛,这本书并不受推崇,我也是喜欢和其他语言对比着看才选择的这个
    Owenjia
    Owenjia
    Jan 18, 2016
    19
    @GNiux
    @233
    Dive Into Python 3 还是有的。 http://www.diveintopython3.net/
    skyworker
    skyworker
    Jan 18, 2016
    20
    @sivacohan “慢”其实不是问题,目前大部分应用的瓶颈其实在数据库里面。

    SQL 查询需要 400ms , java 循环需要 40ms;

    SQL 查询需要 400ms , python 循环需要 80ms;

    440ms 和 480ms 差别很大吗?
    skyworker
    skyworker
    Jan 18, 2016
    21
    @sivacohan 当然,你纯跑一个不涉及 sql 操作的 1w 遍的 benchmark , java 和 python 差别很大;但是生产系统上的瓶颈大部分都在 sql 上
    tanywei
    tanywei
    Jan 18, 2016
    22
    凡事不先写 Class
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
    ♥ Do have faith in what you're doing.