Python—手动包装一个方法(特别是,我询问robert kern的line profiler)

Python—手动包装一个方法(特别是,我询问robert kern的line profiler),python,python-3.x,methods,wrapper,line-profiler,Python,Python 3.x,Methods,Wrapper,Line Profiler,包装函数没有问题: 然而,我似乎无法理解的是,将同样的技术应用于方法 假设我尝试在方法上使用相同的技术: class Foo: def method(self): return 1 obj = Foo() lp = LineProfiler() lp_wrapper = lp(method) obj.lp_wrapper() # Causes an error since Foo does not have a method called "lp_wrapper"

包装函数没有问题:

然而,我似乎无法理解的是,将同样的技术应用于方法

假设我尝试在方法上使用相同的技术:

class Foo:
    def method(self):
        return 1

obj = Foo()

lp = LineProfiler()
lp_wrapper = lp(method)
obj.lp_wrapper()  # Causes an error since Foo does not have a method called "lp_wrapper"

修复此错误的最佳方法是什么?谢谢

最好的答案来自schwobaseggl:“你试过
lp_wrapper=lp(obj.method)


事实证明,这就是包装方法的方式

你试过了吗?我爱你。就是这样。@Aaron,所以您不应该添加“已解决”或“类似”来表示您已经解决了问题,只需发布您已经完成的响应并将其标记为正确即可。我建议你检查一下:)
class Foo:
    def method(self):
        return 1

obj = Foo()

lp = LineProfiler()
lp_wrapper = lp(method)
obj.lp_wrapper()  # Causes an error since Foo does not have a method called "lp_wrapper"