Python教程

python练习八:返回函数

本文主要是介绍python练习八:返回函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

python练习八:返回函数

题目

利用闭包返回一个计数器函数,每次调用它返回递增整数

代码

# 方法一
s = 0 #设置全局变量
def createCounter():
    def counter():
    	# 加上global,同时无论在那里修改,都会全局影响 
        global s #引用全局变量
        s = s+1
        return s
    return counter

# 测试:
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
    print('测试通过!')
else:
    print('测试失败!')
# 方法二
def createCounter():
    s = [0] # 当成列表,只更改列表的值
    def counter():
        s[0] = s[0]+1
        return s[0]
    return counter

# 错误代码
def createCounter():
    s = 0
    def counter():
        s += 1 # s被当成counter的局部变量,并且认为createCounter的s变量没有定义
        return s
    return counter
# 错误信息
# UnboundLocalError: local variable 's' referenced before assignment  ---> s未被定义
这篇关于python练习八:返回函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!