学习目标:
①:类的Magic方法
②:列表元素是对象时进行排序
- Python日常
内容展示:
①: 类的Magic方法
eq定义等于操作符(==)
ne定义不等于操作符(!=)
lt定义小于操作符(<)
gt定义大于操作符(>)
le定义小于等于操作符(<=)
ge定义大于等于操作符(=>)
②:列表元素是对象时进行排序
class MyClass:
def __init__(self):
self.value = 0
"""
def __lt__(self, other):
return self.value < other.value
"""
"""
def __gt__(self, other):
return self.value < other.value
"""
my1 = MyClass()
my1.value = 20
my2 = MyClass()
my2.value = 10
my3 = MyClass()
my3.value = 30
a = [my1, my2, my3]
print(a)
# a.sort()
import operator
a.sort(key=operator.attrgetter('value')) # 指定排序依据 reverse默认为false升序
b = sorted(a, key=operator.attrgetter('value'))
# 升序排序:
print(a[0].value) # 10
print(a[1].value) # 20
print(a[2].value) # 30
print(b[0].value) # 10 输出看一下首尾为多少,后续b不再输出查看
# 降序排序
a.sort(key=operator.attrgetter('value'), reverse=True) # 指定排序依据 reverse为True,降序
# a.sort()
print(a[0].value) # 30
print(a[1].value) # 20
print(a[2].value) # 10
注释掉的部分,即Magic方法也可以作为一种排序方法,同样搭配sort方法和sorted函数。
总结:
1.
为类添加__gt__和__lt__方法,搭配sort或者sorted,实现排序
2.
通过改变__gt__和__lt__方法方法的返回值,或者设置sort方法或sorted函数的reverse参数,可以让列表倒序排列
- 优快云 Python日常 第【2】10 篇
- 下一篇链接