python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...
P82-递归函数-阶乘计算案例
#使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=factorial(5)print(result)#分行几何P83-嵌套函数-内部函数-数据隐藏
嵌套函数:在函数内部定义的函数
分形几何
什么情况下使用嵌套函数?
封装-数据隐藏
外部无法访问嵌套函数
贯彻DRY(Dont repeat yourself)的原则
嵌套函数,可以让我们在函数的内部避免重复的代码
闭包
后面会详细讲解
P84-nonlocal_global
nonlocal关键字
nonlocal
用来声明外层的局部变量
global
用来声明全局变量
【操作】使用nonlocal声明外层的局部变量
#测试nonlocal,global关键字的用法def outer(): b=10def inner():nonlocal b #声明外部函数的局部变量 print("innner",b)#b=20直接b=20就会报错,必须要先声明一下 inner() print("outer b:",b)outer()print("a:",a)P85 LEGB规则
Enclosed指的是嵌套函数,一个函数包裹另一个函数,闭包
如果某一个name映射在局部(local)命名的空间当中没有找打,接下来就会在闭包作用域(enclosed)进行搜索,如果闭包作用域也没有找到,Python就会找到全局(global)命名空间当中进行查找,最后会在内建(built-in)命名空间当中进行搜索(如果一个名称在所有的命名空间当中都没有找到,就会产生一个NameError)
#测试LEGBprint(str(30))print(type(str))#str="global str"def outer():#str="outer"def inner():#str="inner" print(str)pass inner()outer()P86面向对象和面向过程的区别-执行者的思维
第六章 面向对象的编程
面向对象(Object oriented Programming,OOP)编程的思想主要是针对大型的软件设计而来的,面向对象的编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样的简单,面向对象将数据和操作数据的相关的方法封装到对象当中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率
Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承,多态,封装等
Python当中,一切皆对象,我们在前面学习的是数据类型,函数等,都是对象
注意:Python支持面向过程,面向对象,函数式编程等多种编程范式
面向对象和面向过程的区别
面向过程(Procedure Oriented)思维
面向过程编程更加关注的是程序的逻辑流程,是一种执行者的思维,适合编写小规模的程序,
面向过程思想思考问题的时候,我们首先思考“怎么按照步骤实现”,并将步骤对影成方法,一步一步,最终完成,这个时候简单的任务,不需要过多的协作的情况下,比如:如何开车?我们很容易就列出了时间的步骤
发动车2,挂挡3踩油门4走你
面向过程适合简单,不需要协作的事务,但是当我们思考比较复杂的问题的时候,比如:“如何造车?”就会列出1234这样的步骤,这是不可能的,那是因为造车太复杂,需要很多的协作才能够完成,此时面向对象的思想就营运而生了。
面向对象(object oriented)思维
面向对象更加关注的是软件当中对象之间的关系,是一种设计者思维,适合编写大规模的程序。
欢迎打赏,么么哒!
●R语言
●句子
●JAVA
●C语言以及算法笔记
●大学生生活图鉴
●JavaScript
●计算机网络原理
●计算机组成原理
●操作系统
●数据库系统概论
●数据结构
●英语
●Linux
●数字图像处理
●云计算与人工智能
●资源
●明星电视剧社会现象娱乐
Python
仙女都在看点点点,赞和在看都在这儿!总结
以上是生活随笔为你收集整理的python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java开发和python哪个好学_学编
- 下一篇: snmpset对象不可写_[Python