【发布时间】:2019-11-11 07:41:29
【问题描述】:
我正在尝试使用 Python 中的设置器更新节点中的排名字段。以下是我使用的代码:
class Tree(object):
def __init__(self,u):
self.parent=u
self.rank=0
def get_parent(self):
return self.parent
def get_rank(self):
return self.rank
def set_parent(self,v):
self.parent=v
def set_rank(self,v):
self.rank=v
然后我运行以下代码:
Tree(0).get_rank()
Tree(0).set_rank(5)
Tree(0).get_rank()
输出:
0
预期输出:
5
在这里,我得到的输出本身是 0 而不是我期望的 5。谁能让我知道我在代码中甚至在概念上到底哪里出了问题?
【问题讨论】:
-
第二行的
Tree(0)与第一行的Tree(0)不同。尝试对两条线都执行id(Tree(0))以查看它。 -
您每次都在对新对象执行操作,因此您正在丢弃中间状态。此外,getter 和 setter 在 Java 中很常见,但在 Python 中却很少见。只需直接设置和读取属性
标签: python class methods constructor getter-setter