不要将螺丝刀用作锤子
Python 不是静态类型语言,因此不要尝试以这种方式使用它。
当您使用特定工具时,您就是将其用于其已构建的用途。对于Python来说,这意味着:
鸭子打字: 没有类型检查。只有行为才重要。因此,您的代码必须设计为使用此功能。好的设计意味着通用签名、组件之间没有依赖性、高抽象级别。因此,如果您更改任何内容,则无需更改其余代码。 Python 也不会抱怨它的构建目的。类型不是问题。
庞大的标准库。如果您使用尚未自己编码的标准功能,则无需更改程序中的所有调用。 Python 附带电池。我每天都在不断发现它们。当我开始尝试像每个人一样重写现有的东西时,我不知道可以使用多少模块。没关系,你不可能从一开始就万事大吉。
你不会以同样的方式编写 Java、C++、Python、PHP、Erlang 等等。它们是为什么这么多不同的语言都有空间的充分理由,但它们不做相同的事情。
单元测试不能替代
单元测试必须使用任何语言来执行。最著名的单元测试库(JUnit http://en.wikipedia.org/wiki/JUnit) 来自 Java 世界!
这与类型无关。你再次检查行为。您可以避免回归带来的麻烦。您确保您的客户一切顺利。
适用于大型项目的 Python
语言、库和框架
不要缩放。架构确实如此。
如果你设计了一个可靠的架构,如果你能够让它快速发展,那么它就会扩展。单元测试有帮助,自动代码检查也有帮助。但它们只是安全网。还有小的。
Python 特别适合大型项目,因为它强制执行一些良好的实践,并且内置了许多常用的设计模式。但再次强调,请勿将其用于未设计的用途。例如:Python 不是一种用于 CPU 密集型任务的技术。
在一个巨大的项目中,您很可能会使用多种不同的技术。作为一个SGBD https://stackoverflow.com/questions/980813/what-is-sgbd(法语为DBMS https://en.wikipedia.org/wiki/Database)和模板语言,否则。 Python 也不例外。
您可能希望使用 C/C++ 来处理需要快速运行的代码部分。或者 Java 来适应Tomcat http://en.wikipedia.org/wiki/Apache_Tomcat环境。不知道,不关心。 Python 可以很好地处理这些。
作为结论
我的回答可能感觉有点粗鲁,但请不要误会我的意思:这是一个非常好的问题。
很多人带着旧习惯来到Python。我试图像 Python 一样编写 Java 代码,结果把自己搞砸了。你可以,但永远无法充分利用它。
如果你已经玩过/想玩Python,那就太棒了!这是一个很棒的工具。但实际上只是一个工具。