是否可以将 setter 作为方法调用?

Is it possible to call setter as a method?

鉴于 class,我可以使用 setter/getter 结构修改 _x。但是现在可以通过调用方法来改变_x吗?

我问的原因只是因为以后使用 lambda y: (c.x := y) 将某些东西定义为 lambda 会非常方便,它在 3.8 中有效,但在 3.7 中我们需要类似 [=15= 的东西].

class C:
    def __init__(self):
        self._x = 0
    @property
    def x(self):
        return self._x
    @x.setter
    def x(self,_x):
        print(_x)
        self._x = _x
c = C()
c.x = 999 # this works
c.x.some_method_maybe(999) # call setter of x explicitly?

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

def modify(y): c.x = y

或者如果你讨厌可读性:

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