• python 学习笔记三 (函数)


    1、把函数视为对象

    def factorial(n):
    '''return n!'''
    return 1 if n < 2 else n*factorial(n-1)

    print(factorial.__doc__)
    x = factorial
    print(x)
    print(factorial)
    print(x(10))

    2、高阶函数:

    接受函数为参数,或者把函数作为结果返回的函数是高阶函数。

    常见的高阶函数: map(),sorted(),filter()

    3、匿名函数:

    什么时候使用匿名函数,假如这个方法使用次数就一次,就避免用def进行一个方法的定义,直接用lambda 进行定义

    fruits=['apple','strawberry','banana','cherry']
    y=sorted(fruits, key=lambda word: word[::-1])

    针对 lambda word :word[::-1] 其实正常来说需要写一个方法

    def  rever(str):

          return str[::-1]

    y=sorted(fruits, key=rever)

    4、可调用对象

    使用callable()进行判断是否可以调用

    5、用户定义的可调用类型

    import  random
    class BingoCage:
    def __init__(self,items):
    self._items = list(items) # 这里的写法很重要,避免对原来对list产生影响
    random.shuffle(self._items)
    def pick(self):
    try:
    return self._items.pop()
    except IndexError:
    raise LookupError('pick from empty BingoCage')
    def __call__(self):
    return self.pick()
    定义了__call__方法后,BingoCage的对象就可以像对象一样的调用
    bingcage=BingoCage([1,2,3,4])
    bingcage() 就会去调用__call__方法

    6、函数的内省

    使用dir可以查看对象包含的各个函数

    7、在函数编程里,有几个包很重要: operator 和 functools 包,对于支持函数式编程上有很重要的作用

  • 相关阅读:
    Nginx证书配置:tomcat证书jks文件转nginx证书.cet和key文件
    postgresql中实现按周统计详解
    symfony 初始化项目
    从零开始创建 symfony-cmf
    Installing Symfony project with PHP 7.3 version
    GIT Submodule的使用
    分享 koa + mysql 的开发流程,构建 node server端,一次搭建个人博客
    vue 响应式原理
    $nextTick 源码解析
    记一次webpack打包优化
  • 原文地址:https://www.cnblogs.com/yingchen/p/11842878.html
Copyright © 2020-2023  润新知