一、函数
1、基础
- def是可执行的代码;实时执行的。 --- Python中所有的语句都是实时运行的,没有像独立的编译时间这样的流程。
- def创建了一个对象并将其赋值给某一变量名;
- lambda创建一个对象但将其作为结果返回;
- return将一个结果对象发送给调用者。
-
- 可出现在函数主体中的任何地方;
- 表示函数调用的结束,并将结果返回至调用处;
- return语句包含一个对象表达式,这个对象给出函数结果 。
- 没有出现时,函数会在控制流程执行完函数主体时结束。
- 技术上说,一个没有返回值的函数自动返回了None对象,且这个值被忽略。
- yield向调用者发回一个结果对象,但记住它离开的地方;
- global声明了一个模块级的变量并被赋值;
- nonlocal声明了将要赋值的一个封闭的函数变量。允许一个函数赋值一条语法封闭的def语句的作用域中已有的名称。这就允许封闭的函数作为保留状态的一个地方——当一个函数调用时,信息被记住了——而不必使用共享的全局名称。
- 函数是通过赋值(对象引用)传递的;调用者以及函数通过引用共享对象,但是不需要别名。改变函数中的参数名并不会改变调用者中的变量名,但是改变传递的可变对象可以改变调用者共享的那个对象。
- 参数、返回值及变量并不是声明。
2、Python中的多态
Python中的多态:一个操作的意义取决于被操作对象的类型。
多态在函数中的应用:如果对象传给函数的对象有预期的方法和表达式操作符,那么它们对于函数的逻辑来说就是有着即插即用的兼容性的。
在Python中为对象编写接口,而不是数据类型。
3、本地变量
所有本地变量都会在函数调用时出现,并在函数退出时消失。
4、一等
Python中所有函数都是一等对象,满足下述条件的程序实体:
- 在运行时创建;
- 能赋值给变量或数据结构中的元素;
- 能作为参数传给函数;
- 能作为函数返回结果;