Discuss / Python / 返回函数 作业

返回函数 作业

Topic source

自己想的:

def createCounter():
    def sum():
        n = 0
        while True:
            n = n + 1
            yield n
    fun = sum()
    def counter():
        return next(fun)
    return counter

评论区大佬的:

def createCounter():
    count = [0]
    def counter():
        count[0] += 1
        return count[0]
    return counter

木森林A02

#2 Created at ... [Delete] [Delete and Lock User]

评论区大佬真的强,通过列表来储存更新后的值,佩服

随性而曰

#3 Created at ... [Delete] [Delete and Lock User]

如果函数接收到的是一个可变对象(dict、list),就能修改对象的原始值,如果是不可变对象(num、str、tuple),则不能直接修改对象

def createCounter():
    res = {'sum': 0}
    def counter():
        res['sum'] += 1
        return res['sum']
    return counter

用字典,列表都可以


  • 1

Reply