Python使用函数作为参数

2020-04-28  本文已影响0人  eeert2

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)  # [小美, 李宁, 韩梅梅]
上一篇下一篇

猜你喜欢

热点阅读