python编程学习day04

1.函数名是变量名

  “=”是内存指向,等号赋值操作,内存指向操作

  变量——可赋值,可作为列表元素

  函数名可以作为返回值返回

  函数名可作为参数传递

2.闭包

  内层函数使用了外层函数的变量

   作用:可以让一个变量常驻内存,不被销毁,可以保护变量不被外界修改

   也就是outer()函数里,a=10这个变量永存,不会被外界污染,所以称之为闭包


3.装饰器

  是一种固定语法,不改变函数内部语法逻辑的基础上,给函数加的功能。

  软件设计原则:开闭原则:对功能添加开放,对修改原来函数代码封闭。

  装饰器模板,相当于函数的函数:

  

   调用装饰器1

  

  调用装饰器2

   

  同一函数被多个装饰器一层一层包


 4.迭代器

  作用,效果:让一个可迭代对象从里面拿到每个数据。

  在python中,只有可迭代对象能拿到迭代器,int类型不可迭代。

  可以被迭代:在这种类型数据有 __iter__

  

  迭代器:通过__iter__函数得到一个对象

  迭代器是可迭代对象,可迭代对象不一定是迭代器。

  直观效果:有__iter__  是可迭代对象

       有__iter__,__next__是迭代器

  特点:

  1.省内存

  2.惰性机制

  3.只能向前,迭代完对象之后会报错  StopIteration


5.生成器

  本质是迭代器。   (1).生成器函数   yield 和return效果一样,每次next执行到下个yield

          节省内存,把超大数据集,分段处理

  (2)生成器表达式

  

   拿空生成器:1.for 循环   2.生成列表

  在函数写yield,此函数为生成器函数,生成器函数执行创建一个生成器。生成器.__next__(),才执行一次到yield。


  

6.推导式

       列表推导式  [结果   for循环  if语句]

       字典推导式  {key:value  for循环   if语句}

       集合推导式  {key       for循环   if语句}

       生成器表达式  (结果  for循环  if语句)


7.lambda 匿名函数

       Lambda  参数:返回值


8内置函数

    sorted()排序函数  用特定规则排序

    filter() 筛选函数   用特定规则刷选

    map()映射

      reduce() 和map相反


9.递归

       递归就是调用函数自己

       最大深度为1000

原文地址:https://www.cnblogs.com/gui-yan-ru-yun/p/11928969.html