diveintopython.org
Python for experienced programmers

1.2. 声明函数

象大多数其它语言,Python拥有函数。但是不象C++或Java,它没有独立的接口声明和实现声明。一旦需要一个函数,声明它,编码就行了。

例 1.3. 声明 buildConnectionString 函数

def buildConnectionString(params):

有几件事情需要注意的。首先,关键字 def 为函数声明的开始。不象VB,Python并不区分有返回值的函数与无返回值的函数。它没有子程序。全部都是函数,所有的函数都以 def 开始。

其次,函数没有定义返回的数据类型。实际上,甚至不需要指定是否会返回一个值。函数并不关心第一种情况或第二种情况。如果函数执行了一个 return 语句,它将返回一个值,否则会返回 None (Python的空值)。

第三,参数 params 并不需要指明数据类型。在Python中,变量不需要被明确类型。Python会指出一个变量是什么类型,并在内部保持记录。

Important
自动数据类型处理是一把双刃剑。它很方便,相当的强大。但是它带来额外的负担,需要你去理解Python会在什么时候并且会如何将数据强制转化为不同的类型。