多语言展示
当前在线:796今日阅读:4今日分享:26

Python3.x那些事儿:[18]定义函数

先定义一个斐波那契数列函数来做个例子,通过这个函数可以得到任何边界的斐波那契数列。函数定义的关键词是def,紧跟在def后面的是函数的名字和一对括号,括号中是所有参数的列表,然后是冒号,函数的正文从下一行开始,并且要有缩进。函数正文的第一行可以使一个字符串,这个字符串也叫做文档字符串,有专门的工具可以将文档字符串制作成在线或者本地的文档,或者也可以通过交互式界面在代码中来访问这个字符串,所以要尽量养成书写文档字符串的好习惯。一个函数的执行引入了用于函数的局部变量,这些局部变量组成了一个新的符号表。更确切地说,一个函数中的所有变量分配都会存储在局部符号表;而在引用变量时先在局部符号表查找,然后在封闭功能的局部符号表中查找,然后在全局符号表中查找,最后在内置名称中查找。因此,全局变量不能在函数中被直接赋值(除非使用global语句来命名变量),但是这些全局变量可以被引用。在函数调用过程中实参会在被调用函数的局部符号表中被引入;因此,实参是使用按值调用(这里的值总是一个对象引用,而不是对象的值)传递。 当一个函数调用另一个函数,一个新的局部符号表在调用过程中会被创建的。函数定义会在当前符号表中引入函数名。函数名的值会被解释器识别为一个用户定义的函数类型。这个值也可以被赋予到其他变量,然后这个变量也可以来引用这个函数。这就是通过一般的重命名机制来实现的。如果函数没有返回值,则会自动返回一个None我们可以把函数改为返回一个数列,而不打印。
推荐信息