检测类属性值更改,然后更改另一个类属性

2024-05-19 11:31:00 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一门课叫Number

class Number():
  def __init__(self,n):
    self.n=n
    self.changed=None
a = Number(8)
print(a.n) #prints 8
a.n=9
print(a.n) #prints 9

nclass属性更改时,我希望将changedclass属性更改为True


Tags: selfnonetruenumber属性initdefprints
1条回答
网友
1楼 · 发布于 2024-05-19 11:31:00

适当使用@propety可能

class Number():
  def __init__(self,n):
    self._n=n
    self._changed=None

  @property
  def n(self):
      return self._n

  @property
  def changed(self):
      return self._changed

  @n.setter
  def n(self, val):
      # while setting the value of n, change the 'changed' value as well
      self._n = val
      self._changed = True

a = Number(8)
print(a.n) #prints 8
a.n=9
print(a.n) #prints 9
print(a.changed)

返回:

8
9
True

相关问题 更多 >

    热门问题