python基础知识

一、闭包函数

  1、闭包函数的定义:在一个内部函数中,在对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

  2、闭包函数的特点:自带作用域和延迟计算

  补充:1.函数的作用域关系在函数定义阶段就已经固定,与调用位置无关。无论函数在何处调用,都需要回到定义阶段去找对应的作用域关系。

     2.globals:是把局部变量的值声明为全局变量的值。

      nonlocal:在一个内部函数中修改外部函数里的局部变量的值。

二、装饰器

  1、装饰器遵循的是开放封闭原则:对扩展是开放的对修改是封闭的。

  2、装饰器的本质是:装饰器可以是任意可调用的对象,被装饰的对象也可以是任意可调用的对象。(装饰器本质就是函数,功能就是为其他函数添加新功能。)

  3、装饰器的功能:在不修改被装饰对象源代码以及调用方法的前提下为其添加新功能。

  4、装饰器的原则:不修改源代码,不更改源代码的调用方式。

  5、装饰器的目的:是为了添加新功能

  6、装饰器语法:在被装饰对象的正上方的前一行@装饰器名称。

  7、如果有多个装饰器,加载顺序是从下到上,执行顺序是从上到下。

 三、高阶函数

  1、高阶函数定义:函数接受的参数是个函数名,或者是函数的返回值是个函数名,满足其中一条就是高阶函数。

  2、高阶函数总结:

  当函数接收的参数是一个函数名                      当函数的返回值是一个函数名
   作用:在不修改函数源代码的前提下,为函数添加新功能,            作用:不修改函数的调用方式
   不足:会改变函数的调用方式                        不足:不能添加新功能
 四、补充:

   1、装饰器=高阶函数+函数嵌套+闭包                无参装饰器=高级函数+函数嵌套

   2、补充1:

    from urllib.request import urlopen
    print(urlopen('http://www.xiaohua100.cn/').read())
    print(urlopen('https://www.python.org').read())

    from functools import wraps

python基础7 ---python函数的更多相关文章

  1. python基础——高阶函数

    python基础——高阶函数 高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数a ...

  2. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  3. python学习第五讲,python基础语法之函数语法,与Import导入模块.

    目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...

  4. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  5. 二十一. Python基础(21)--Python基础(21)

    二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性:     #类.属性: 调用的就是类中的属性     #对象.属性: 先从自己的内存空间里找名 ...

  6. Python基础(协程函数、内置函数、递归、模块和包)-day05

    写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04  ...

  7. 『Python基础-13』函数 Function

    这篇笔记记录的知识点: 函数的基本概念 自定义函数 函数的几种参数 编程的三种方式: 1.OOP 面向对象编程,万物皆对象,以class为主,抽象化 2.POP 面向过程编程,万事皆过程,def定义过 ...

  8. python 基础篇 11 函数进阶----装饰器

    11. 前⽅⾼能-装饰器初识本节主要内容:1. 函数名的运⽤, 第⼀类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ⼆. 闭包什么是 ...

  9. python基础之open函数和路径处理

    前言 本次内容主要介绍文件处理open函数以及路径处理. 一.open函数 根据前面介绍的函数调用方式,调用open函数. #open函数调用 open() TypeError: open() mis ...

随机推荐

  1. Python_Select解析

    selcet(等待I/O完成)的介绍: select同时监控多个socket,select()的机制提供了fd_set的数据结构,实际是long类型的数组,优点是跨平台性,select的缺点在于单个进 ...

  2. Navicat Premium 连接 Oracle 数据库

    Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL.SQLite.Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便 ...

  3. vue-router 动态路由匹配

    export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld, }, { / ...

  4. css 用 display: inline-block; 代替 float

    浮动可以将两个块级元素浮动在同一水平上.但float的缺点也有很多,还需要其他样式弥补. 早年我使用过 display: inline-block; 但苦于兼容性问题一直没敢全面使用. 近几年主要玩移 ...

  5. android电话状态的监听

    电话状态的监听: /*** * 继承PhoneStateListener类,我们能够又一次其内部的各种监听方法 然后通过手机状态改变时,系统自己主动触发这些方法来实现我们想要的功能 */ class ...

  6. HDFS源码分析数据块复制选取复制源节点

    数据块的复制当然需要一个源数据节点,从其上拷贝数据块至目标数据节点.那么数据块复制是如何选取复制源节点的呢?本文我们将针对这一问题进行研究. 在BlockManager中,chooseSourceDa ...

  7. PHP将多级目录打包成zip文件

    最近接触PHP,需要用到zip压缩,在网上搜索的一大堆,发现代码都不低于50行.  而且调用还很费事(基础太少看不懂).让我收获的是Php提供有一个ZipArchive类,并有如下方法. bool a ...

  8. Dockerfile安装KOD可道云

    [root@docker01 base2]# cat Dockerfile FROM centos:6.8 RUN yum install openssh-server -y RUN /etc/ini ...

  9. java高级之信号灯Semaphore

    1.Semaphore概念 Semaphore是Java1.5之后提供的一种同步工具,Semaphore可以维护访问自身线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数 ...

  10. 打造一个高逼格的android开源项目——小白全攻略 (转)

    转自:打造一个高逼格的android开源项目 小引子 在平时的开发过程中,我们经常会查阅很多的资料,最常参考的是 github 的开源项目.通常在项目的主页面能看到项目的简介和基本使用,并且时不时能看 ...