zoukankan      html  css  js  c++  java
  • 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 包,对于支持函数式编程上有很重要的作用

  • 相关阅读:
    C# 多线程并发锁模式-总结
    C# 7 out variables, tuples & other new features
    AngleSharp 的Dom 选择器
    Html Agility Pack
    javascript判断是否按回车键
    VSTS 免费代码git/tfs托管体验-使用代码云托管
    NPOI 中的公式列的值的获取
    topshelf 开发windows 服务资料
    vue之指令
    hash和md5
  • 原文地址:https://www.cnblogs.com/yingchen/p/11842878.html
Copyright © 2011-2022 走看看