【发布时间】:2021-05-31 17:12:23
【问题描述】:
我有以下代码:
def test(testFunc):
def runTest(*args, **kwargs):
testFunc(*args, **kwargs)
return runTest
@test
def func1():
pass
@test
def func2():
pass
tests = [func1, func2]
def RunTest():
testList = [x.__name__ for x in tests ]
print(testList)
运行上面的代码会打印出[runTest, runTest],这是装饰器的名称。知道为什么会发生这种情况以及如何解决吗?
【问题讨论】:
-
您必须提供minimal reproducible example。
cleanup是什么?无论如何,您为什么期望它打印原始函数的名称?你知道你的装饰器返回另一个函数runTest吗? -
@juanpa 更令人惊讶的是它说“测试”然后......
-
修复了我的问题中的一些错误。谢谢指出
标签: python