物业装饰

jtm*_*jtm 2 python pylint decorator pydev python-3.x

我有一个房产装饰师所以:

def Property(f):  
    """
    Allow readable properties without voodoo.
    """
    fget, fset, fdel = f()
    fdoc = f.__doc__
    return property(fget, fset, fdel, fdoc)
Run Code Online (Sandbox Code Playgroud)

使用(例如)所以:

    @Property
    def method():
        """"""
        def fget(self):
            return some expression...
        return fget, None, None
Run Code Online (Sandbox Code Playgroud)

所以我的问题是关于这样做的python方式.Pydev抱怨说

"方法method应该有自己作为第一个参数"

而且pylint给了我

方法没有争论

我知道我可以在pydev中关闭此错误消息,但我想知道是否有更好的方法来管理不将self作为参数的方法,我可以做得更好.

zee*_*kay 10

您可以使用@staticmethod创建一个不接收隐式第一个参数的方法.Python的@property装饰器是不是已经做了你想要的?

class Foo(object):
    @property
    def bar(self):
        return 'foobar'

>>> foo = Foo()

>>> foo.bar
<<< 'foobar'
Run Code Online (Sandbox Code Playgroud)