Python 可以将setter作为方法调用吗?

Python 可以将setter作为方法调用吗?,python,getter-setter,setter,Python,Getter Setter,Setter,给定以下类,我可以使用setter/getter构造修改\ux。但是现在是否可以通过调用方法来更改\ux 我问这个问题的原因只是因为以后使用lambda y:(c.x:=y)定义lambda会非常方便,它在3.8中工作,但在3.7中我们需要类似lambda y:c.x.some_方法的东西,可能(y) 不要使用lambda,只使用函数: def modify(y): c.x = y 或者如果你讨厌可读性: type(c).x.__set__(c, 5) c.x是999,它具有任何整数所具有的

给定以下类,我可以使用setter/getter构造修改
\ux
。但是现在是否可以通过调用方法来更改
\ux

我问这个问题的原因只是因为以后使用
lambda y:(c.x:=y)
定义lambda会非常方便,它在3.8中工作,但在3.7中我们需要类似
lambda y:c.x.some_方法的东西,可能(y)


不要使用lambda,只使用函数:

def modify(y): c.x = y
或者如果你讨厌可读性:

type(c).x.__set__(c, 5)

c.x
是999,它具有任何整数所具有的属性。为什么你需要一种方法——你想解决的问题是什么?@Jornsharpe我刚刚添加了用例——但这与问题无关,因为还有其他方法可以解决它。我只是好奇对象
property()
creates。为什么你想在lambda中使用walrus操作符?你可以使用这个hack:
c.\uu class.\uuuu.mro()[0]。\uu dict.\uuuu['x'].fset(c,999)
@dejdej这似乎是最简洁的解决方案(您必须使用
:=
,因为正常赋值
=
在lambda中不起作用)。否则,您必须首先定义一个命名函数,该函数会产生更多的视觉混乱。或者您是否考虑了其他解决方案?
type(c).x.__set__(c, 5)