class Square:
def __init__(self, value):
self.size = value
def __repr__(self):
return '{0}' .format(self.size)
def bigger_than(self, t):
if self.size > t:
return True
else:
return False
s = Square(8)
t = Square(7)
if s.bigger_than(t):
print('The first square is bigger than the second one.')
else:
print('The first square is not bigger than the second one.')
由此产生的错误消息如下:
Traceback (most recent call last):
File "sourceFile", line 38, in <module>
if s.bigger_than(t):
File "sourceFile", line 14, in bigger_than
if self.size > t:
TypeError: unorderable types: int() > Square()
我想问题出在bigger_than
的某个地方,但我不太确定。我要做的是添加一个方法,将正方形的大小与另一个正方形的大小进行比较,并输出正方形的大小。你知道吗
如果我尝试和print()
、self.size
和t
,它会输出来自:s = Square(8)
和t = Square(7)
的值。你知道吗
您应该执行以下操作:
注意,命名方法
__gt__
允许直接使用>
(greaterthan),并且我们显式比较两个参数的size
属性(s > t
等价于s.__gt__(t)
或Square.__gt__(s, t)
)。你知道吗我还将
__repr__
更改为:您应该阅读the documentation以获得有关这些“神奇方法”的更多信息。你知道吗
相关问题 更多 >
编程相关推荐