zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    GC(垃圾分代收集)
    排序算法总结
    Redis中的数据结构
    事务的隔离性(续篇)
    手写Spring mvc框架 (二)
    MySql日志与事务的隔离级别
    手写Spring mvc框架 (一)
    IO流
    随笔三(Ajax)
    关于博主noble_
  • 原文地址:https://www.cnblogs.com/gui-yan-ru-yun/p/11928969.html
Copyright © 2011-2022 走看看