一个关于python装饰器的问题

想问一下,使用这个@logger语句为什么取不到flag的值?我想用@logger实现功能,不想用

out = logger(3)(out)

out()

实现,怎么做,两个语句功能不应该是一样的吗?

import time

def logger(flag = 0):
    def show_time(func):
        def inner():
            func()
            print(flag)
        return inner   
    return show_time

@logger(0)
def out():
    print('printing……')

程序运行结果:

图片说明

呃,找到了,忘记调用了