Python基础知识(07)

嵌套函数/内部函数

在函数内部定义的函数

在这里插入图片描述

nonlocal关键字

nonlocal 用来声明外层的局部变量
global 用来声明全局变量

#测试nonloacl/global关键字的用法
a=100
def outer():
    b=10

    def inner():
        nonlocal b #声明外部函数的局部变量
        print("inner b:",b)
        b=20

        global a #声明全局变量
        a=1000

    inner()
    print("outer b:",b)

outer()
print("a:",a)

LEGB规则

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

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

如果某个name映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(enclosed)进行搜索,若也没有找到,python就会到全局(global)命名空间内进行查找,最后会在内建(build in)命名空间搜索(如果一个名称在所有命名空间中都没有找到,就会产生一个NameError)。

面向对象编程

面向对象(object oriented programming,OOP)编程的思想主要是针对大型软件设计而来,面向对象编程使程序的扩展性更强,可读性更好,使得编程可以像搭积木一样简单。

面向对象编程将数据和操作数据相关的方法封装到对象中,组织代码和数据的方式更加接近人的思维,从而大大提高了编程的效率。

Python完全采用了面向对象的思想,是真正面向对象的编程语言,完全支持面向对象的基本功能,例如:继承/多态/封装等。

Python中,一切皆对象。
注:Python支持面向过程/面向对象/函数式编程等多种编程范式。

面向对象和面向过程

  1. 都是解决问题的思维方式,都是代码组织的方式
  2. 解决简单问题可以使用面向过程
  3. 解决复杂问题宏观上使用面向对象把握,微观处理上仍然是面向过程。

类将行为和状态打包在一起,我们通过类定义数据类型的属性(数据)和方法(行为)。

如果把对象比做一个饼干,类就是制造这个饼干的模具

在这里插入图片描述

对象是类的具体实体,一般称为类的实例。从一个类创建对象时,每个对象会共享这个类的行为(类中定义的方法),但会有自己的属性值(不共享状态),即:方法代码是共享的,属性数据不共享。
在这里插入图片描述

类名一般首字母大写,多个单词采用驼峰原则。


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值