首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人生苦短,我用Python

21CTO导读:不知道你不是有兴趣用Python来开发应用程序?在本文中,我们来讲解一下如何将Python当做一种好的Web开发语言。

“我最喜欢的语言是Python。它简单,有干净的语法,支持面向对象开发,良好的库支持,可选的命名参数” 。

去看,我为一家公司启动一个新项目。刚一开始时,我们讨论了选择什么样的语言来编程,以便我们能够在最短时间内达到MVP-最小化价值的效果,同时也能在该项目学习到新知识。

这家公司用的编程语言是Java,现在我们遇到了一个选择,是继续用Java还是尝试其它语言?我们果断地选择了第二项,选择其它编程语言。

这个项目是一个Web应用程序,我们需要先找到一个Web框架,然后再找到与该框架兼容的语言。很快,我们就找到最佳选择——Django框架,它是用Python编程的Web框架,选择的编程语言自然是Python。从此,我便开始了Python的旅程。

自从那时起,我开始用Python开发软件到现在,将近有一年多时间。

记得我第一次使用Python编码时,有一种错觉,感觉选择错了,后来我才了解Python的强大,并且在短时间内达成目标有多么的容易。

下面我就在本文中,与大家分享为什么Python那么好用,与Java等语言相比,使用Python有多简单。

举例说明

让我们来从一些简单的事儿开始课程。

经典Hello World代码:

Java:

class Hello {

public static void main(String args []){

}

}

Python:

print("Hello World")

那么,你该用什么样心情喜欢上Python?轻松愉快的权利。你不需要声明一个类,也不需要声明一个方法,就可以做你想做的事,打印一段文本不需要太多的工作。在这个所有编程书都会教你Hello World,可以看到Python的语法有多简单,从而开发高可读性的程序,“做正确的事情”与“方便性”是Python巨大的优势。

语法缩进

图1:Python中的缩进

变量和方法

另一件让我感到惊讶的事情是,在Python中你不用,或者不能给变量指定一个类型,这让Python成为一个强大的动态类型语言。它很强大,类型可以根据程序上下文来动态变化,Python内部有isinstance()和issubclass()来测试正在运行的变量类型并能正确使用。这和一些动态语言,比如PHP、Perl以及JavaScript等语言很相像。

图2:Python与Java的变量类型

从上面的图片可以看到,变量可以无需要声明类型,它可以是任何值:整数、字符串、列表、对象等。在Python中,变量本身不绑定任何一种类型,但是值不会错误,它永远不会出现一个字符串可以加到一个整数中,所有的动态语言都是如此。

比如,如果有一个字符串分配给变量,那么更改变量的值非常容易 ,稍后想把它改成整数,则可以这样做。在静态型(强类型)语言中,变量一定要有一个类型,如果事先声明为整型,以后将不能再给这个变量其它类型的值。

估计你也会发现该方法也没有返回类型,它可以任何东西。但是,可以将返回的值绑定到某个类型,但如果这样做,除了属于特定类型的东西外,不能返回其他任何东西。

图3:Python中绑定VS未绑定方法

方法重载

尽管我只需要重载一次方法,但是我发现Python不让重载(Method Overloading)这么玩,它压根就不支持,而Java中是支持那种标准的重载的。

Python中虽然不支持方法重载,但是也是可以实现的。没有人阻止你写同名的方法,这样也是有效的。但是每次你写了一个与其它函数同名时,Python会忘掉之前名字的函数。其实没什么卵用。

但这不是结束。有了一定的编程毅力,我们可以使用多方法模式得到想要的结果,或者使用默认参数值更好。我认为第二个选项是个更好的选项,这样的函数允许有更少的参数调用。

如下:

图5使 用默认参数值作为重载方法的一种方式

这只是我在用Python时,学习的一小部分内容。每次我需要要系统中构建一个特殊功能是,我都对Python提供的简单编码和易用性赞叹不已。“人生苦短,我用Python”,说实话,这一年来我用Python感到很爽,期待这个语言的更新功能。

我们的第一章也到此完成,下一篇继续,大家不要错过,敬请期待。

作者:洛逸

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180621G24O2O00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券