为什么一个属性有效而另一个无效?



碰巧我有两个属性实现。 但一个有效,另一个无效。也就是说,在一个中,它甚至没有进入二传手。

我给自己的任务是在网上徘徊,这种情况发生在我身上是非常罕见的,两者都应该工作。

你知道为什么会这样吗?

谢谢

class QuickTasks():
def __init__(self, name=None, value=None):
self.name = name
self.value = value
@property
def name(self):
return self._name
@name.setter
def name(self, value):
if isinstance(value, str):
self._name = value
else:
raise TypeError("name must be str")
@property
def value(self):
return self._value
@value.setter
def value(self, value):
if isinstance(value, int):
self._value = value
else:
raise TypeError("value must be int")
obj = QuickTasks(name=4, value='j')
print(obj.name)
obj.name = 5
print(obj.name)
################################################################
class TreeNode(object):
def __init__(self, value = None):
self.value = value
self._left_node = None
self._right_node = None
@property
def value(self):
return self._value
@value.setter
def value(self, value):
if isinstance(value, int):
self._value = 8
else:
raise TypeError("value must be int")
def main():
tree_node = TreeNode(3)
#tree_node.value = 3
print (tree_node.value)
if __name__ == '__main__':
print("")
main()

当你上线时:

obj = QuickTasks(name=4, value='j')

它分配给QuickTasks初始值设定项中的self.name,它会引发一个TypeError,你没有捕捉到。这将完全绕过代码的其余部分,跳过value属性的所有使用(以及完全TreeNode(。

最新更新