python lambda PyCharm建议将@Property装饰器添加到函数中

时间:2016-09-09 03:01:47

标签: python lambda properties

    def establishedSessions(self):
        return reduce(lambda x, y: x and y, loggedInUsers.values())

所以我有一个带有用户名密钥的会话字典,值是一个布尔值,表示该用户是否已登录。我想知道是否所有用户都连接了这个功能。 PyCharm建议我添加一个@Property装饰器。

我想我有点理解@Property装饰器的作用,但我不明白为什么它适用于这种情况。

1 个答案:

答案 0 :(得分:2)

@property装饰器(不是@Property)创建一个描述符,允许您访问看起来像对象的成员变量,但其值是函数的返回值。即你会引用obj.established_sessions而不是obj.established_sessions()

属性不能带参数,一般不应有副作用。您的功能符合两个标准,因此很容易成为财产。它不一定是一个。