[课后作业] 第020讲:函数:内嵌函数和闭包 | 课后测试题

0. 如果希望在函数中修改全局变量的值,应该使用什么关键字?

答:global

1. 在嵌套的函数中,如果希望在内部函数修改外部函数的局部变量,应该使用什么关键字

答:nonlocal

2. Python 的函数可以嵌套,但要注意访问的作用域问题哦,请问以下代码存在什么问题呢?

def outside():

        print('I am outside!')

        def inside():

                print('I am inside!')

inside()

答:inside 在内置函数中未输出,即未被定义。

3. 请问为什么代码 A 没有报错,但代码 B 却报错了?应该如何修改?

代码A:

def outside():

        var = 5

        def inside():

                var = 3

                print(var)

        inside()

outside()

代码B:

def outside():

        var = 5

        def inside():

                print(var)

                var = 3

        inside()

outside()

答:报错原因:代码B的inside( )函数对未定义对象var进行读取

4. 请问如何访问 funIn() 呢?

def funOut():

        def funIn():

                print('宾果!你成功访问到我啦!')

        return funIn()

答:直接调用funOut()函数。

5. 请问如何访问 funIn() 呢?

def funOut():

        def funIn():

                print('宾果!你成功访问到我啦!')

        return funIn

答:调用funOut()()

6. 以下是“闭包”的一个例子,请你目测下会打印什么内容?

def funX():

        x = 5

        def funY():

                nonlocal x

                x += 1

        return x

return funY

a = funX()

print(a())

print(a())

print(a())

答:

6

7

8

0.动动手

字符串文档下载不了。略。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值