2

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

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应该有 self 作为第一个参数”

pylint给了我

方法没有参数

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

4

1 回答 1

10

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

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

>>> foo = Foo()

>>> foo.bar
<<< 'foobar'
于 2011-06-26T02:32:20.723 回答