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. Appium Android Bootstrap源代码分析之简单介绍

    在上一个系列中我们分析了UiAutomator的核心源代码,对UiAutomator是怎么执行的原理有了根本的了解.今天我们会開始另外一个在安卓平台上基于UiAutomator的新起之秀--Appiu ...

  2. Linux 查看某个程序所在端口的 PID

    lsof -i:8085 加入显示的是2001 kill 2001 就可以杀死程序了

  3. 浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

    1.如图所看到的我们须要在前台的页面通过radio和select将相应的数据库中的数据显示到选项其中,这也是我们做项目中常常须要做的,动态的显示,而不是静态的显示. 首先我们须要在页面中导入strut ...

  4. 点击tablecell中的一个按钮,确定cell所在的行

    - (void) del:(UIButton *) button { NSLog(@"%s",__FUNCTION__); UITableViewCell * cell = (UI ...

  5. asp.net core mvc视频A:笔记3-6.视图数据共享之session/cache

    第一部分:Session讲解 会话级别的,怎么区分呢?以浏览器为单位,比如IE,搜狗等等,都算一个单独的会话 修改3.5项目 控制器代码 前端显示 startup.cs中配置并启用Session 运行 ...

  6. Android基础之使用Fragment控制切换多个页面

    Android官方已经提供了Fragment的各种使用的Demo例子,在我们SDK下面的API Demo里面就包含了Fragment的各种使用例子,需要看Demo的朋友,直接看API Demo那个程序 ...

  7. HDU 1014 Uniform Generator 题解

    找到规律之后本题就是水题了.只是找规律也不太easy的.证明这个规律成立更加不easy. 本题就是求step和mod假设GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choic ...

  8. 在CentOS 5下安装中文五笔

    由于习惯使用五笔,需要在CentOS5 下安装中文五笔输入法. 刚装好的 CentOS 5默认是没有中文输入 法的.只能显示英文,有中文字符的文件名呈现乱码. 首先挂载CentOS的系统安装盘,在安装 ...

  9. org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述 启动hibernate测试案例时报错如下: 2.解决方案: 2.1 第一次解决:MySQL驱动版本太高.使用的hibernate版本为5 ...

  10. redhat 网络配置

    1. 查看网络 ifconfig 网卡名字(eth0.wlan0) ifconfig -a //查看所有网卡配置 2. 网卡打开\关闭 ifconfig eth0 down ifconfig eth0 ...