Python 不是 Java 或 C++:Python 作为第二语言的同理心

主要观点:Python 与 Java、C++不同,作为 Python 专家有责任帮助不懂 Python 的同事,应理解他们对 Python 的理解,包括“Python-as-a-second-language empathy”(将 Python 作为第二语言的同理心),可通过先学其他语言、学习不同语言、倾听问题、学习同事熟悉的语言来培养这种同理心,还列举了从 Java/C++角度看 Python 中一些棘手的方面,如装饰器、类体赋值、运行时错误、条件和运行时导入、块作用域、引入绑定、赋值、闭包、GC、显式 super()、属性和其他描述符、动态属性查找、猴子补丁、元编程、Python 2 空格琐事等,并讨论了如何利用这些信息,如教学、代码审查、写代码注释、面试等。
关键信息:

  • Python 专家有责任帮助同事理解 Python。
  • 可通过多种方式培养对 Python 作为第二语言的同理心。
  • 从 Java/C++角度看 Python 有诸多棘手方面。
  • 可利用这些信息进行教学、代码审查等。
    重要细节:
  • 如 Dropbox 很多程序员入职后边学边干,主要通过 Google 和 Stack Overflow 学习 Python,易有盲点。
  • 学习其他语言再学 Python 能获得独特视角,还可学习不同语言以了解更多误解维度。
  • 列举了 Python 与 Java/C++在多个方面的具体差异,如装饰器的作用、类体赋值创建的变量类型等。
  • 面试时可利用对这些差异的了解快速识别和澄清误解。
阅读 9
0 条评论