Python基础知识-pycharm版 第7节

本文深入探讨Python的面向对象编程,包括嵌套函数、nonlocal和global关键字,以及LEGB查找规则。此外,讲解了面向过程与面向对象的区别,强调两者在解决问题时的不同思维模式。同时,介绍了类的定义、构造函数__init__、实例属性和方法,以及类属性、类方法和静态方法。通过对Python对象生命周期的理解,讨论了__del__析构方法和垃圾回收机制,以及__call__方法使对象变得可调用。
摘要由CSDN通过智能技术生成

083.嵌套函数(内部函数)_数据隐藏

嵌套函数:在函数内部定义的函数!
在这里插入图片描述
上面程序中,f2()就是定义在f1 函数内部的函数。f2()的定义和调用都在 f1()函数内部。
一般在什么情况下使用嵌套函数?

  1. 封装 - 数据隐藏
    外部无法访问“嵌套函数”。
  2. 贯彻 DRY(Don’t Repeat Yourself) 原则
    嵌套函数,可以让我们在函数内部避免重复代码。
  3. 闭包
    后面会详细讲解。
    在这里插入图片描述

084.nonlocal_global

nonlocal 用来声明外层的局部变量。
global 用来声明全局变量。
在这里插入图片描述

085.LEGB规则

Python在查找“名称”时,是按照LEGB规则查找的:
Local–>Enclosed–>Global–>Built in

  1. Local
    指的就是函数或者类的方法内部
  2. Enclosed
    指的是嵌套函数(一个函数包裹另一个函数,闭包)
  3. Global
    指的是模块中的全局变量
  4. Built in
    指的是Python为自己保留的特殊名称。

如果某个name映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域 (enclosed)进行搜索,如果闭包作用域也没有找到,Python就会到全局(global)命名空间中进行查找,最后会在内建(built-in)命名空间搜索 (如果一个名称在所有命名空间 中都没有找到,就会产生一个NameError)。
在这里插入图片描述
依次将几个str注释掉,观察控制台打印的内容,可以体会LEBG的搜索顺序。

086.(第6章(1) 面向对象初步)面向对象和面向过程的区别_执行者思维_设计者思维

  1. 面向过程(Procedure Oriented)思维
    面向过程编程更加关注的是“程序的逻辑流程”,是一种“执行者”思维,适合编写小规模的程序。
    面向过程思想思考问题时,首先思考“怎么按步骤实现?”并将步骤对应成方法, 一步一步,最终完成。 这个适合简单任务,不需要过多协作的情况下。比如,如何开车? 很容易就列出实现步骤:
    发动车 → \to 挂挡 → \to 踩油门
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值