函数:
1.定义:def 函数名(参数),返回值return可有可无,没有时默认返回None,
函数名是区分大小写的,函数名必须以下划线或字母开头,
可以包含任意字母、数字或下划线的组合。不能使用任何的标点符号;
2.变量:
全局变量:作用域从定义开始到进程结束。
局部变量:作用域和生存周期仅在从定义开始到函数结束。
如果想在函数内部定义全局变量,就要先声明是全局变量,用global x。
3.参数:
参数类型:
位置参数:位置参数在可变参数后
默认参数:默认参数的默认值最好不是可变类型,调用函数时,默认参数的值如果没有传入,则被认为是默认值。
可变参数:*
关键字参数:**kw
多种参数类型混合使用 位置参数在第一位,关键字参数一定在最后
4.调用
直接输入函数名调用,记得有参数要传参
递归调用:
在函数内调用函数本身
(1) 找到终止条件
(2) 找到递归条件
5.
生成器(generator):
迭代器(Iterator):
next()得到成员的:generator
可迭代(Iterable):
能用for遍历的:str, list, tuple, dict, set, generator, range
collections模块中定义的Iterator和Iterable类型
6.匿名函数
适合函数功能简洁的
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率
7.高阶函数:函数为参
8.装饰器(decorator):
修饰函数
闭包:函数内有一个内嵌函数,内嵌函数可以使用外部函数的局部变>量
类:
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 局部变量:定义在方法中的变量,只作用于当前实例的类。
- 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
- 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
- 实例化:创建一个类的实例,类的具体对象。
- 方法:类中定义的函数。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
1.创建类:class class 之后为类的名称并以冒号结尾: