我陷入了理解装饰师的难题。与下面的代码相比,__lt__(self, number)
方法和less_than(self, number)
方法有什么用?
这两种方法之间有什么区别吗?它们如何处理参数?你知道吗
class Sort:
def __init__(self, number):
self.number = number
def __lt__(self, number):
return self.number < number
def less_than(self, number):
return self.number < number
正如Martijn Pieters所说,这与装饰师无关。你知道吗
看到区别了吗? 在第一种情况下,如果您与Sort类型的对象进行比较。 在第二种情况下,如果从Sort类型的实例s1调用方法。你知道吗
这两个函数
__lt__()
和less_than()
做同样的事情。然而,有一个很大的区别: 使用“<;”运算符时,python会在内部调用函数__lt__
。所以,你可以这样做比较
x < y
调用x.__lt__(y)
,因此它返回true
。通过这种方式,可以更改所创建的特定类的内置运算符的行为。有关详细信息,请参阅“操作符重载”和“python魔术方法”相关问题 更多 >
编程相关推荐