匿名函数:匿名函数就是指不需要显示的指定函数用lambda表示,默认return结果
在Python中如果一个元素被创建了,但是并没有一个变量来接受这个元素,则解释器会自动释放这个函数的内存空间
比起def而言,虽然lambda不能进行复杂的逻辑计算,但是他比def更加的简便,但是需要配合别的函数使用,一般不单独使用
name = lambda x:x+1 a = name(1) print(a) #2
编程的方法论:面向过程,函数式编程,面向对象
函数式编程:函数式=编程语言自定义函数+数学意义的函数
用编程语言去实现数学函数,这种函数内对象是不变的,要么参数是函数,要么返回值是函数没有for和while,所以的循环用递归去实现,无变量的赋值(不用变量去保存状态,无赋值既不改变)
特点:
1.不可变:不用变量保存状态,不修改变量
#即面向对象 a= 1 def foo(): global a a +=1 return a foo() print(a) #函数式 n = 1 def nua(n): return n+1 res = nua(1) print(res) #2 #2
2.函数即变量
函数名可以当做一个变量传给一个函数
返回值也可以是函数名
def foo(n): print(n) def bar(name): print("My name is %s"%name) foo(bar('hai')) #My name is hai None
面向对象:面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
一切都是对象
面向对象是一种对现实世界理解和抽象的方法,对做程序来说,就是让程序人员,用一种思维更好的看待万物,在编程中的本质。
举例:
将一栋房子 比作一个对象 【房子:对象】。
引用:https://www.cnblogs.com/littlemo/p/4350848.html
面向过程:
面向过程就是面向解决问题的过程进行编程。仔细思考一下,我们在学习和工作中,当我们去实现某项功能或完成某项任务时,是不是会不自觉的按部就班的罗列出我们要做的事情?(如果没有,建议以后试着步骤化解决问题)。而当我们按着我们罗列的步骤去解决问题时,实质上就是按照面向过程的思想去解决问题。我们罗列的步骤就是过程,按照步骤解决问题就是面向过程。
传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化!实现步骤如下:
- 将要实现的功能描述为一个从开始到结束按部就班的连续的步骤(过程);
- 依次逐步完成这些步骤,如果某一步的难度较大,又可以将该步骤再次细化为若干个子步骤,以此类推,一直到结束得到想要的结果;
- 程序的主体是函数,一个函数就是一个封装起来的模块,可以实现一定的功能,各个子步骤往往就是通过各个函数来完成的,从而实现代码的重用和模块化编程!
高阶函数:把函数当做参数传给另外一个函数
. 返回值中包含函数