Lambda表达式和匿名函数
Lambda表达式可以用于申明匿名函数,只允许包含一个表达式,不能含有复杂语句
基本语法
Lambda arg1,arg2,arg3: 函数表达式,其中arg为参数
Eval()函数:可以用于把字符串str当成表达式求值
Eval(source[,global[,locals]] - > value
Source:表达式 globals:可选,必须是字典 locals:可选,任意映射对象
递归函数
递归函数指函数在内部直接或间接的调用自己,包含递归条件和递归步骤两部分
内嵌函数
在函数内部调用另一个函数
作用:隐藏封装(从外部无法看到内嵌函数的代码),节省空间
LEGB规则
在查找名称时,python按照的顺序是1. 函数或类的方法内部(local)2.嵌套函数(Enclosed)3. 全局变量(Global)4.python自有的特殊名称(Built in)如果都没找到,就会报错
面向过程与面向对象
前者注重行动的逻辑流程,后者注重对象与对象的关系
对象的发展由来
数据》数组》结构体》对象
数字》同类数据》不同类数据》不同数据和关系、方法‘
类的定义
类是生产对象的模板,我们通过类来定义和区分对象(但它本身也是对象)
一个对象由方法和属性组成,同类对象共同拥有一个方法,而每个对象又有维持各自的属性
构造函数__init__
一个python对象包含id,type,value三个部分,而value包含属性和方法,构造函数就是用于执行一个实例对象的初始化。它的第一个参数必须为self,在后面写你要添加的属性,self代指你要创建的对象。(它是把对象初始化不是创建对象,new()方法才是创建对象的)
实例属性与实例方法
s1.salary()为实例增加salary这一属性,通过init函数,用代码:self.实例属性名 = 初始值,可以定义,之后通过对象.实例属性名来访问或着增加新的属性
s1.say_score()为实例方法,调用实例方法时,不能给self传参,解释器会自动传参
类方法
类对象使用的方法,其他方法不能被类对象使用通过@classmethod定义,格式
@classmethod
Def 类方法名(cls[,形参列表]):
函数
静态方法
在类中定义与类无关的方法
@staticmethod
Def 类方法名(cls[,形参列表]):#cls特指类对象
函数体
_del__方法(析构函数):销毁对象,释放占用的资源
__cal__方法:像调用函数一样调用对象