首页 > 解决方案 > 如何通过装饰器在函数内打印活动变量的名称?- 蟒蛇 3

问题描述

所以,我有这个代码:

def checkScope(f):
    def inner(*args):
        res=f(*args)
        // I WANNA PRINT HERE BIM BUM AND BAM
        return res
    return inner

class A():
    @checkScope
    def first(self):
        bim = 5
        return self.second(bim)

    def second(self,m):
        if m < 8:
            bum = 6
        return self.third()

    def third(self):
        bam=2
        return bam

test=A()
test.first()

如何使用 Inspect 在函数 checkScope 内打印变量 bim bum 和 bam?

标签: pythonpython-3.xpython-decorators

解决方案


装饰器不能在你的行之间放置命令。您的变量仅在函数运行时存在,因此无法在其他任何地方读取。您必须将它们定义为类变量或globals

您可以做的一件事是将它们全部作为参数传递并读取它们。


推荐阅读