标签:
如果你是一个PHP程序员,或者,在做一些C语言的小型开发,你有否思考过这样的问题:花括号,应该怎么放?
比如像下面这样的两小段代码:
代码1
<?php main(); function main(){ return true; } ?>
代码2
#include<stdio.h> int main(){ return 0; }
请注意上面代码上的花括号,如果是让你来写,你会怎样放置花括号的位置?
对我而言,无论是使用php,还是c语言,把花括号放在行尾,是我在工作项目中,一直喜欢用的方式。
如果,写成像下面这样(把花括号,另起一行),我会觉得,整个人都不好了!
<?php main(); function main() { return true; } ?>
那么,正确的方式标准有没有,应该是怎么的呢?答案是:没有标准!
编程语言本身,既然即可以支持放在行尾,也可以另起一行,也就意味着,无论你采用哪一种写法,都是对的,都没错 !
这完全依靠每个人的编程风格 以及所在的团队的规定和习惯
如果一门语言的本身,允许存在这样的两种方式,即不明确,也不统一风格,那么,问题就来了:如果一个程序员,长期坚持其中一种风格写代码,当遇到另一种风格的代码时候,该怎么面对呢?我在工作中,如果经常遇到类似地方,有需要调试或者svn提交代码的时候,会在潜意识当中,顺带把别人另起一行的大括号,直接移动到上一行的行尾去了,同时,我也在猜想,别人会不会,也在潜意识当中,把我放在行尾的花括号,给挪到下一行去呢? 一想到此处,内心的纠结,就无比不痛快,为什么就不能有一个统一的、大家都应该遵守的风格?
由且,当你有写久了代码,养成了自己的风格,产生了代码洁癖的时候,清晰、统一的风格,会让你内心觉得愉悦
在这样的纠结中,主角登场了。
python!彻底摆脱了这个问题对于程序员的困扰。
在Python中,花括号,消失了!消失了!消失了!重要的事情说3遍,在Python中,再也没有花括号了!
花阔号,是真的消失了!
python是怎样做到的呢,没有花括号,真的能行吗?
答案是完全可以,Python是用强制缩进的方式,来摆脱花括号的束缚
来看一段,在,python中,使用def来定义一个函数,并在第一句末尾,使用了一个冒号,抛弃了花括号。
def main(): a = 100 b = 200 c = 0 if a > b: c = a - b elif a == b: c = a else: c = a + b print c main()
这段代码,即用到了函数的定义,也会用到了if,还用到elif,python告诉我们一个事实:不需要用大括号!
这个函数的结束,是以函数体内第一行的缩进为依据的,属于同一个层次的代码,一定要缩进和对齐
这里请务必记住:这是强制缩进,不是可有可无!
从上往下,不同层次的代码,一定要缩进,如果不缩进,或者多缩进、少缩进、都会出现语法错误,Python直接报错
Python这样做,是有强制的味道,但强制的结果,是保持了风格的统一,大家都使用同一种标准!
我觉得,光这点,Python相比其他语言是一大特色和改进
在以上PHP、c语言、python这3种编程语言当中,,我觉得,python的风格,是最好看的!
尽管C语言和php你也可以保持缩进和对齐,但是,这不是必须的,不是必须的,如果不那那样做,你的代码,照样可以继续运行。
而在 python中,则万万不行!你必须强制保持上下层级的代码对齐和缩进,且不能随意缩进 ,否则,你的程序,会出现语法报错或者难以预料的后果
出现报错和数据错误,这当然不是程序员希望看到了
Python这样的风格,已然注定,你必须将程序写得足够好看和简明,虽然好看和简明并不是你的初衷
对一个程序员来说,随编程年龄的增长,你越来越渴望能拥有一个看起来舒服、优雅、风格统一的语言
而python,则满足了我对编程语言的这些幻想,引起了我的共鸣,这种编程风格,越到最后,我觉得对我会越来越重要
这就是目前为止,支持我学习python的动力,我选择Python,并不是因为Python的优秀,而是我喜欢python这样的编程风格
there is only way todo it!这是python之禅
翻译过来,就是:只有一种方式做一件事,其他的都,是多余的!
或者理解:只用最完美的那一种!
标签:
原文地址:http://www.cnblogs.com/kezheng/p/5136685.html