猿问

Python-使用decorator.py保留方法docstring

我有兴趣将实例方法称为类方法和实例方法。这可以通过使用class_or_instance装饰器来完成,如下所示:


class class_or_instance(object):

    def __init__(self, fn):

        self.fn = fn


    def __get__(self, obj, cls):

        if obj is not None:

            return lambda *args, **kwds: self.fn(obj, *args, **kwds)

        else:

            return lambda *args, **kwds: self.fn(cls, *args, **kwds)


class A(object):

    @class_or_instance

    def func1(self,*args):

         # method body

现在,我可以将func1称为 A.func1(*args)或A().func1(*args)。但是,执行此操作时,func1的文档字符串会消失。解决此问题的一种方法是使用decorator.py中的decorator,但是我很难使它与类(而不是函数)一起使用。关于如何进行此操作有什么建议吗?


烙印99
浏览 199回答 2
2回答
随时随地看视频慕课网APP

相关分类

Python
我要回答