【问题标题】:Property decorator物业装饰师
【发布时间】:2011-09-22 19:54:06
【问题描述】:

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

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 作为参数的方法,我可以做得更好。

【问题讨论】:

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


    【解决方案1】:

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

    class Foo(object):
        @property
        def bar(self):
            return 'foobar'
    
    >>> foo = Foo()
    
    >>> foo.bar
    <<< 'foobar'
    

    【讨论】:

      猜你喜欢
      • 2019-06-14
      • 1970-01-01
      • 2010-10-16
      • 2011-02-11
      • 2012-04-10
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      相关资源
      最近更新 更多