物业装饰

时间:2011-06-26 02:08:29

标签: python python-3.x decorator pydev pylint

我有一个属性装饰器,所以:

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

使用(例如)所以:

    @Property
    def method():
        """"""
        def fget(self):
            return some expression...
        return fget, None, None

所以我的问题是python的做法。 Pydev抱怨

  

“方法method应该是自己的   第一个参数“

pylint给了我

  

方法没有参数

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

1 个答案:

答案 0 :(得分:10)

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

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

>>> foo = Foo()

>>> foo.bar
<<< 'foobar'
相关问题