Python学习笔记之疑问 2:python的函数定义为什么没有开始和结束符

Python 函数没有明显的 begin 和 end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号 (:),接着代码本身是缩进的。

例如:

def buildConnectionString(params):
    """Build a connection string from a dictionary of parameters.

    Returns string."""
    return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
其实,不函数,所有的代码块都是用缩进来定义的。代码块包括:函数,IF语句,While语句,For循环等。

代码块就是可作为可执行单元的一段Python程序文本;模块、函数体和类定义都是代码块。不仅如此,每一个交互脚本命令也是一个代码块;一个脚本文件也是一个代码块;一个命令行脚本也是一个代码块。

开始缩进表示块的开始,取消缩进表示块的结束。不存在明显的括号,大括号或关键字。这就意味着空白是重要的,并且要一致。在这个例子中,函数代码 (包括 doc string) 缩进了 4 个空格。不一定非要是 4 个,只要一致就可以了。没有缩进的第一行则被视为在函数体之外。

例如:
def fib(n):                   
    print 'n =', n            
    if n > 1:              
        return n * fib(n - 1)
    else:                     
        print 'end of the line'
        return 1

Python 使用硬回车来分割语句,冒号和缩进来分割代码块,而不使用分号和花括号。


posted @ 2013-10-05 19:34  不喝啤酒的小啤酒  阅读(3942)  评论(0编辑  收藏  举报