Python Setter class 中的方法没有给出预期的输出
Python Setter method in class not giving expected output
我正在尝试使用 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。任何人都可以让我知道我在代码甚至概念上到底哪里出了问题吗?
您必须为您的 class 创建一个对象:
tree = Tree(0)
tree.get_rank()
tree.set_rank(5)
tree.get_rank()
5
您正在每行创建和使用一个新的 Tree
对象:
Tree(0).get_rank() # first tree object
Tree(0).set_rank(5) # second tree object
Tree(0).get_rank() # third tree object
因此,当您在第三个上调用 get_rank
时,它是全新初始化的,因此它的等级为 0。
我正在尝试使用 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。任何人都可以让我知道我在代码甚至概念上到底哪里出了问题吗?
您必须为您的 class 创建一个对象:
tree = Tree(0)
tree.get_rank()
tree.set_rank(5)
tree.get_rank()
5
您正在每行创建和使用一个新的 Tree
对象:
Tree(0).get_rank() # first tree object
Tree(0).set_rank(5) # second tree object
Tree(0).get_rank() # third tree object
因此,当您在第三个上调用 get_rank
时,它是全新初始化的,因此它的等级为 0。