鱼C论坛

 找回密码
 立即注册
查看: 2479|回复: 1

[技术交流] 《零基础入门学习Python》第19、20讲笔记合集

[复制链接]
发表于 2018-1-2 22:39:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 joey234you 于 2018-1-2 22:37 编辑

第19讲 我的地盘听我的

函数和过程
        函数(function)和过程(procedure)的概念
        结论1:Python严格来说只有函数,没有过程!
        结论2:Python的所有函数都有返回值


再谈返回值
        Python返回值总结起来有三个特点:
        1、        可以动态确定函数的类型
        2、        函数还能返回不同类型的值
        3、        还可以同时返回多个值。——利用列表/元组打包多种类型的值一次性返回。

        结论:只需要知道Python会返回一个东西,然后拿来用就可以了。


函数变量的作用域——本节重点,重点在于细节
        函数变量的作用域,即变量在函数内的可见性
                局部变量(Local Variable) VS 全局变量(Global Variable)
        结论:在函数内部仅仅去访问全局变量就好,不要试图去修改它。具体原理下节揭晓。
        疑问/下节提要:1、有什么办法在函数里面实现全局变量值的修改?
                                     2、Python能实现函数的嵌套吗?


第20讲 内嵌函数和闭包
        global关键字
                上一节的结论:在函数内部仅仅去访问全局变量就好,不要试图去修改它。其中包含的原理:Python会使用屏蔽(Shadowing)的方式“保护”全局变量
                                        在函数中全局变量的修改要慎用。它会带来哪些后果?
                真要去修改,那就要使用关键字global


        #插入一句感受:接下来的内嵌函数和闭包,其实对应的就是“局部变量和在函数内修改全局变量”的函数式的变体

        内嵌函数(内部函数)
                概念:允许在函数内部创建另一个函数
                注意:内嵌函数的作用域都在外部函数之中。


        闭包(closure)
                定义:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。
               
                在闭包中,外部函数的局部变量对应内部函数的局部变量,事实上相当于之前讲的全局变量跟局部变量的对应关系,在内部函数中,你只能对外部函数的局部变量进行访问,但不     能进行修改。

                如果在内部函数中访问外部函数的局部变量时,一定要进行修改(明知不可为而为之 >_< ),有两种方法:
                (1)        (Python3以前)间接通过容器类型(字符串、列表、元组)来存放外部函数的局部变量
                (2)        (Python3之后)使用关键字nonlocal,效果类似于global

函数:我的地盘听我的+内嵌函数&闭包

函数:我的地盘听我的+内嵌函数&闭包

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
wuqramy + 1 + 1 赞一个

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-5 18:13:08 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 18:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表