码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记(八)

时间:2017-09-16 11:58:38      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:fun   else   默认   red   names   turn   bsp   pac   奇数   

一、变量可以指向一个函数

  a = abs


二、通过调用指向函数的变量可以执行该函数

  a = abs
  a(-10)


三、指向函数的变量可以作为参数传递给一个函数

  def add(x,y,f):
    return f(x) + f(y)
  add(-5,-6,abs)


四、map()函数

  map() 函数可以为其传入一个函数以及一个可Iterator的对象,map将使用该函数依次作用于每个Iterator的元素
  
  list1 = [ x for x in range(1,11)]
  def fun(x):
    return x + 1
  list2 = map(fun,list1)


五、reduce()函数

  reduce()函数接收一个函数和一个Iterator对象,但接收的函数有两个变量,并依次每次迭代列表中的两个元素


六、filter()函数

  filter()函数也是一个高阶函数,其有两个参数,分别是函数和可Iterator对象,并将函数依次作用于这个list的每个元素,根据函数返回True和False来对列表进行相关的操作

  #使用filter()函数来输出一个列表中所有的奇数:
  list1 = [ x for x in range(1,101)]
  def is_odd(x):
    if x % 2 != 0:
      return True
    else:
      return False
  list2 = list(is_odd,list1)


七、sorted()函数

  sorted()函数可以用作排序

  sorted(可遍历对象)
  sorted(可遍历对象, key=abs ) #按照每个元素的abs进行排序
  sorted(可遍历对象, key=abs , reverse = True) #按照每个元素的abs进行排序并且反转


八、函数的返回与闭包

  函数也可以作为值返回

  闭包是函数式编程中函数作为第一等公民的一种组织方式

  def welcome(welcome_str):
    def say_hello(user_name):
      return welcome_str + user_name
    return say_hello

  say_hello_fun = welcome("你好")
  str = say_hello_fun("CQ")
  print(str)


九、创建闭包时的规范

  闭包必须有内嵌函数
  内嵌函数需要引用该嵌套函数上一级namespace中的变量
  闭包函数必须返回内嵌函数


十、闭包函数中的执行和调用问题

  第一步:通过最外称函数获取内嵌函数
  第二步:通过构造内嵌函数参数来获取返回的执行结果


十一、匿名函数

  Python中通过lambda提供了对匿名函数的支持

  lambda 参数 : 参数参与的表达式

  lambda表达式只能有一句表达式,并且直接将该表达式的执行结果返回,而不用书写return语句

  lambda表达式可以直接赋值给一个变量,再通过变量来构造函数来实现调用

  fun = lambda x : x * x 
  fun(5)


十二、装饰器

  装饰器是在不破坏原有函数功能基础上,为函数新增功能的一种机制

  def test1(fun):
    def test2(*k,**kv):
      print("now",fun.__name__,"is run"):
      return fun(*k)
    return test2

  @test1
  def test(user_name):
    print("Hello,",user_name)

  test("CQ") #这里是调用执行


十三、偏函数

  通过偏函数,可以方便的新建一个函数,并使其原函数参数有固定的默认值

  import functools
  int2 = functools.partial(int,base=2)
  int2(‘1000‘)

  functools.partial(原函数,原函数的默认值)

 

 

  

 

  

  

 

  
  

 

Python学习笔记(八)

标签:fun   else   默认   red   names   turn   bsp   pac   奇数   

原文地址:http://www.cnblogs.com/userchencq/p/7529526.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!