Python函数基础--def及return语句地操做

1·def是可执行的代码函数

Python的函数是有一个新的语句编写的,即def。不像C这样的编译语言,def 其实是一个可执行的语句--函数并不存在,直到Python运行了def后才存在。在典型的操做中,def语句在模块文件中编写,并天然而然地在模块文件第一次被导入地时候生成定义的函数。spa

2·def建立了一个对象并将其赋值给某一个变量名对象

当Python运行到def语句时,它将会生成一个新的函数对象并将其赋值给这个函数名。函数名就变成了某一个函数的引用。函数对象能够赋值给其余的变量名,保存在列表之中。函数也能够经过lambda表达式来建立接口

3·return将一个结果对象发送给调用者内存

当函数被调用时,其调用者就中止运行知道这个函数完成了它的工做,这以后函数才将控制权返回调用者。(#1A   #2func()   #3B   先执行A语句,再执行func(),最后执行B语句)函数时经过return语句将计算获得的值传递给调用者的,返回值成为函数调用的结果作用域

4·global声明了一个模块级的变量并赋值编译

在默认状况下,全部在一个函数中被赋值的对象,是这个函数的本地变量(local)(全部本地变量都会在函数调用时出现,并在函数退出时消失),而且仅在这个函数运行的过程当中存在。为了分配一个能够在整个模块中均可以使用的变量名,函数须要在global语句中将它列举出来。一般状况下,变量名每每须要关注它的做用域(也就是说变量存储的地方)。而且是经过实赋值语句将变量名绑定至做用域的变量

5·函数是经过赋值(对象引用)传递的lambda

在Python中,参数经过赋值传递给了函数(也就是说,就像咱们所学过的,使用对象引用)Python的模式中,调用者及函数经过引用共享对象,可是不须要别名。改变函数中的参数名并不会改变调用者中的变量名,可是改变传递的可变对象能够改变调用者共享的那个对象。引用

6·参数,返回值以及变量并非声明

就像在Python中全部的同样,在函数中并无类型约束。实际上,从一开始函数就不须要声明:能够传递任意类型的参数给函数,函数也能够返回任意类型的对象。其结果就是,函数经常能够用在不少类型的对象身上,任意支持兼容接口(方法和表达式)的随想都能使用,不管它们是什么类型。

 

7·补充

Python中的return语句能够在函数主体中的任何地方出现。它表示函数调用的结束,并将结果返回至函数调用处。return语句包含一个对象表达式,这个对象给出的函数的结果。return语句是可选的。若是它没有出现,那么函数将会在控制流执行完函数主体时结束。从技术角度讲,一个没有返回值的函数自动返回了none对象,可是这个值每每是被忽略掉的。

 

Python的def语句其实是一个可执行的语句:当它运行的时候,它建立一个新的函数对象并将其赋值给一个变量名(Python中全部的语句都是实时运行的,没有像独立的编译时间这样的流程)由于它是一个语句,一个def能够出如今任一语句能够出现的地方--甚至是嵌套在其余语句中。例如,尽管def每每是包含在模块文件中,并在模块导入时运行,函数仍是能够经过嵌套在其余语句中去实现不一样的函数定义,这样也是彻底能够的。

 

它在运行时简单的给一个变量名进行赋值。与C这样的编译语言不一样,Python函数子啊程序记念性以前并不须要所有定义。更准确地讲,def在运行时才进行评估,而在def之中的代码在函数调用以后才会评估。

由于函数的定义是实时发生的,因此对于函数名来讲并无什么特别之处。关键之处在于函数名所引用的那个对象。Python中的函数仅仅是对象,在程序执行时它清楚的记录在内存中,除了函数调用外,函数容许任意的属性附加到记录信息以供随后使用。

相关文章
相关标签/搜索