在 Java
这种静态语言中,我们使用接口开发,在接口中指定需要实现的函数
/功能
。然后将接口实现类的对象作为参数。在对象参数
上调用函数。
在Python
中,没有接口的说法,我们直接将函数
作为参数传递,大大简化了Python
的代码量。
举个例子:
在Java
中,要实现排序,则需要实现compareble
接口,然后在接口中实现.compareTo()
函数。
在Python
中,使用排序sorted()
函数,则只需要传入key
函数
class Student:
"""待排序对象"""
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return self.name
def __repr__(self):
return self.__str__()
def func_key(student):
"""Student 的排序函数"""
return student.age
if __name__ == '__main__':
data = [Student('李宁', 18), Student('韩梅梅', 19), Student('小美', 16)]
print(data) # [李宁, 韩梅梅, 小美]
new_data = sorted(data, key=func_key)
print(new_data) # [小美, 李宁, 韩梅梅]
网友评论