search
HomeBackend DevelopmentPython TutorialPython 比 Java 牛在哪?

回复内容:

谢邀.

作为一个数年C/Java/Python混合开发者, 我谈谈我的感受.

我认为C, Java跟Python都是非常成功的语言, 具体选哪种看你的场景.

言归正传,来对比一个Python跟Java.

Python:
优点 ( 知乎怎么不能把这行字变大点??):


语法简洁优美, 功能强大, 标准库跟第三方库灰常强大, 应用领域非常广: vinta/awesome-python · GitHub(跟PHP形成宣明对比!)

语言方面, 举几个例子:

一切都是对象!!!
类(class本身)/函数/类方法是callable的对象
因为是对象,所以你当然可以传来传去啦. 比如:
<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">print</span> <span class="s">"init A"</span>
    <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">print</span> <span class="s">"run A"</span>

<span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">A</span><span class="p">)</span><span class="o">.</span><span class="n">start</span><span class="p">()</span> <span class="c">#: 在另一个线程执行A()</span>

<span class="n">a</span> <span class="o">=</span> <span class="n">A</span><span class="p">()</span>
<span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">a</span><span class="o">.</span><span class="n">run</span><span class="p">)</span><span class="o">.</span><span class="n">start</span><span class="p">()</span> <span class="c">#: 在另一个线程执行a.run() ... </span>
<span class="c"># 惊呆没有,这是怎么做到的?? 也许你该看看描述符的概念</span>
因为python很灵活,一定程度上函数也可以传参和注入,所以代码的灵活性要大的多,而Java在Java 8之前是无法做到函数传参的,所以这种情况下,Java开发者只能写大量的匿名类去注入代码块(这点相比,还是ruby块代码注入更牛逼,不是吗)。
python自带了函数的curry化以及迟滞运算方式,以及闭包语法更容易实现,所以在一定层面上python还是比java难掌控的。
当然python最好的还是duck typing属性,作为动态语言专有的特性,python可以让对象摆脱静态语言范式的约束,随意的给程序打补丁,所以程序扩展性更好。
同时,作为解释型语言,服务器热部署这块,python肯定有优势,一旦程序出问题,直接覆盖原有的源文件就行,而Java 的服务器热部署基于classloader的切换,其中像tomcat这种服务器的热部署(也就是reload功能)其实很容易造成JVM heap爆掉,且完全依赖服务器后台线程对各代码文件的时间戳扫描,所以热部署这块python优于java。 用Python不会被黑,不像Java,每天被用来各种比较各种骂,连带着Java程序员都被各种鄙视,也是醉了 我觉得Python对比Java优点就是语法简洁表达力强。其他的也就没啥了,哦,还有python是脚本语言,在某些情况下脚本语言比需要编译语言有点优势。 优点在于:语法简单清晰。
我了解了python基础语法之后,就能完整的分析Android的OTA包生成过程,解读ota_from_target_files脚本。 不问是不是,只问为什么的就是耍流氓。

什么事情用什么语言,只有最适合的,没有最好的。 牛在......首先,Python上手快;然后,随着学习深入,Python代码更加优雅,而Java代码更加规(臃)范(肿)....... Python比java字母多两个,老师说要选长的。 简单点说
Python的语法:你认为是怎样的,它就是怎样
Java的语法:你以为是这样的,实际上是那样的.... 嘴炮功力
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Python vs. C  : Learning Curves and Ease of UsePython vs. C : Learning Curves and Ease of UseApr 19, 2025 am 12:20 AM

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

Python vs. C  : Memory Management and ControlPython vs. C : Memory Management and ControlApr 19, 2025 am 12:17 AM

Python and C have significant differences in memory management and control. 1. Python uses automatic memory management, based on reference counting and garbage collection, simplifying the work of programmers. 2.C requires manual management of memory, providing more control but increasing complexity and error risk. Which language to choose should be based on project requirements and team technology stack.

Python for Scientific Computing: A Detailed LookPython for Scientific Computing: A Detailed LookApr 19, 2025 am 12:15 AM

Python's applications in scientific computing include data analysis, machine learning, numerical simulation and visualization. 1.Numpy provides efficient multi-dimensional arrays and mathematical functions. 2. SciPy extends Numpy functionality and provides optimization and linear algebra tools. 3. Pandas is used for data processing and analysis. 4.Matplotlib is used to generate various graphs and visual results.

Python and C  : Finding the Right ToolPython and C : Finding the Right ToolApr 19, 2025 am 12:04 AM

Whether to choose Python or C depends on project requirements: 1) Python is suitable for rapid development, data science, and scripting because of its concise syntax and rich libraries; 2) C is suitable for scenarios that require high performance and underlying control, such as system programming and game development, because of its compilation and manual memory management.

Python for Data Science and Machine LearningPython for Data Science and Machine LearningApr 19, 2025 am 12:02 AM

Python is widely used in data science and machine learning, mainly relying on its simplicity and a powerful library ecosystem. 1) Pandas is used for data processing and analysis, 2) Numpy provides efficient numerical calculations, and 3) Scikit-learn is used for machine learning model construction and optimization, these libraries make Python an ideal tool for data science and machine learning.

Learning Python: Is 2 Hours of Daily Study Sufficient?Learning Python: Is 2 Hours of Daily Study Sufficient?Apr 18, 2025 am 12:22 AM

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

Python for Web Development: Key ApplicationsPython for Web Development: Key ApplicationsApr 18, 2025 am 12:20 AM

Key applications of Python in web development include the use of Django and Flask frameworks, API development, data analysis and visualization, machine learning and AI, and performance optimization. 1. Django and Flask framework: Django is suitable for rapid development of complex applications, and Flask is suitable for small or highly customized projects. 2. API development: Use Flask or DjangoRESTFramework to build RESTfulAPI. 3. Data analysis and visualization: Use Python to process data and display it through the web interface. 4. Machine Learning and AI: Python is used to build intelligent web applications. 5. Performance optimization: optimized through asynchronous programming, caching and code

Python vs. C  : Exploring Performance and EfficiencyPython vs. C : Exploring Performance and EfficiencyApr 18, 2025 am 12:20 AM

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.