如何在 Python 中使用 lambda 表达式定义 属性

How to define property with lambda expression in Python

我正在尝试使用更少的代码编写 Python 属性,我想用 lambda 定义 getter 和 setter 函数。

所以,我这样尝试:

class Text(object):

    content = property(lambda self: self._content,
                       lambda self,content: self._content = content)

    def __init__(self, content):
        self._content = content
        pass

但不幸的是,我在第二个 lambda 表达式(setter)上出错,因为你不能用赋值定义 lambda,对吗?

那么有没有其他方法可以编写 属性(最好是内联的),从而减少代码。私有属性 _content 是字符串类型,有没有办法在没有 = 运算符的情况下为字符串赋值。

你可以这样做:

content = property(lambda self: self._content,
                   lambda self,content: setattr(self, '_content' ,content))