写点什么

python 函数二三事

  • 2022 年 7 月 05 日
  • 本文字数:851 字

    阅读完需:约 3 分钟

python 函数二三事

python 中的函数是一等公民,非常重要,人称一等函数。今天和大家分享几个函数中有用的二三事。

1. sorted

sorted 是 python 内置的高阶函数,用于对可迭代的对象进行排序,如列表,字典,元组,集合和字符串, 返回的是一个列表


sorted(iterable, /, *, key=None, reverse=False)


alist = ['bobo', 'annyaa', 'bush']adict = {1: 'bobo', 4:'annyaa', 2:'bush'}astr = "pythoncheck"
print(sorted(alist))print(sorted(adict.items()))print(sorted(astr))
## sorted 可以指定定制key来排序print(sorted(alist, key=lambda x: len(x)))print(sorted(adict.items(), key=lambda x: len(x[1])))print(sorted(adict.items(), key=lambda x: x[1][1]))
# ['annyaa', 'bobo', 'bush']# [(1, 'bobo'), (2, 'bush'), (4, 'annyaa')]# ['c', 'c', 'e', 'h', 'h', 'k', 'n', 'o', 'p', 't', 'y']# ['bobo', 'bush', 'annyaa']# [(1, 'bobo'), (2, 'bush'), (4, 'annyaa')]# [(4, 'annyaa'), (1, 'bobo'), (2, 'bush')]
复制代码

2. 函数参数* 与**

python 函数支持关键参数,也支持非关键参数,对于参数是可变的情况下特别的有用; python 非关键参数支持列表和字典模式。


def afun(parama=1, *paramb, **args):    print(parama)    print(paramb)    print(args)    # parama为关键参数,paramb为列表可变参数,args是字典可变参数
print('*' * 10)afun(parama=1)print('*' * 10)afun(1, "e1", "e2", a=1, b=2)
# **********# 1# ()# {}# **********# 1# ('e1', 'e2')# {'a': 1, 'b': 2}
复制代码

3. 通过字符串方式调用方法 methodcaller

如何使框架设计,相信你一定会用到 methodcaller:通过字符串方式调用方法


from operator import methodcallerclass Test:    def aprint(self, info):        print('hello, {}'.format(info))

caller = methodcaller("aprint", "aiweker")t = Test()caller(t)
# hello, aiweker
复制代码


从上面可知字符串aprint其实是函数名, 通过 methodcaller 可以轻松调用函数,可以将函数放在配置文件中来调用。




发布于: 刚刚阅读数: 3
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
python 函数二三事_Python_AIWeker-人工智能微客_InfoQ写作社区