2.2. 声明函数

Python 像大多数其他语言一样拥有函数,但它没有像 C++ 那样的单独头文件,也没有像 Pascal 那样的 interface/implementation 部分。当您需要一个函数时,只需像这样声明它


def buildConnectionString(params):

请注意,关键字 def 用于开始函数声明,后面是函数名称,然后是括号中的参数。多个参数(此处未显示)用逗号分隔。

还要注意,该函数没有定义返回数据类型。Python 函数不指定其返回值的数据类型;它们甚至不指定是否返回值。实际上,每个 Python 函数都会返回一个值;如果函数执行了 return 语句,它将返回该值,否则将返回 None,即 Python 的空值。

Note
Visual Basic 中,函数(返回值)以 function 开头,子例程(不返回值)以 sub 开头。Python 中没有子例程。一切都是函数,所有函数都返回值(即使是 None),并且所有函数都以 def 开头。

参数 params 没有指定数据类型。在 Python 中,变量永远不会显式地指定类型。Python 会自动识别变量的类型并在内部跟踪它。

Note
JavaC++ 和其他静态类型语言中,您必须指定函数返回值和每个函数参数的数据类型。在 Python 中,您永远不会显式地指定任何内容的数据类型。根据您赋予的值,Python 会在内部跟踪数据类型。

2.2.1. Python 的数据类型与其他编程语言的比较

一位博学的读者向我发送了关于 Python 与其他编程语言相比如何的解释

静态类型语言
一种在编译时类型固定的语言。大多数静态类型语言通过要求您在使用所有变量之前声明其数据类型来强制执行此操作。JavaC 是静态类型语言。
动态类型语言
一种在执行时发现类型的语言;与静态类型相反。VBScriptPython 是动态类型的,因为它们在您第一次为变量赋值时确定其类型。
强类型语言
一种始终强制执行类型的语言。JavaPython 是强类型语言。如果您有一个整数,则不能将其视为字符串,除非显式地进行转换。
弱类型语言
一种可以忽略类型的语言;与强类型相反。VBScript 是弱类型语言。在 VBScript 中,您可以将字符串 '12' 和整数 3 连接起来得到字符串 '123',然后将其视为整数 123,所有这些都不需要任何显式转换。

因此,Python 既是 动态类型 的(因为它不使用显式数据类型声明),又是 强类型 的(因为一旦变量具有数据类型,它实际上就很重要)。