zoukankan      html  css  js  c++  java
  • 函数及装饰器

    一,函数对象:把函数的内存地址当做一种变量值去使用

    1.引用

    2.可以当做参数传给其他的函数

    3.可以当做一个函数的返回值

    4.可以当做容器类型的元素

    二:函数的嵌套定义及嵌套调用

    嵌套定义:即在函数体内定义一个新的函数

    嵌套调用:在一个函数体内可以调用其他函数”

    什么是名称空间?

    存放名字与值内存地址绑定关系的地方

    如何用名称空间?

    内置名称空间

    全局名称空间

    局部名称空间

    4.查找名字的顺序是从当前位置往外查找

    名称空间的嵌套关系是在函数定义阶段就固定死的,与调用位置无关

    什么是闭包函数?

    该函数一定是定义函数内的函数,且包含对外层函数作用域的引用

    为函数体传值的方案

    直接以参数的形式传入

    什么是装饰器?

    装饰器指的是为被装饰对象添加新功能的工具

    装饰器本身可以是任意可调用对象

    被装饰对象本身也可以是任意可调用对象

    2.为什么要用装饰器?

    开放关闭原则:对修改封闭。对扩展开放

    装饰器的实现原则:

      1.不能修改被装饰对象的源代码

      2.不能修改被装饰对象的调用方式

    装饰的目的:

    就是在遵循原则一二的前提下为被装饰对象添加新功能

    装饰器标准格式:

    def outer(func):

      def inner(*args,**kwargs):

        res=func(*args,**kwargs)

        return res

      return inner

    func为被装饰对象名称,*args与**kwargs表示可以传入和接受任意参数

    通过调用outer即可以得到返回值inner,加上()运算符即执行inner函数

    语法糖:

    @加装饰器名,等同于调用outer函数重新赋值

    格式为放在被装饰对象上一格

  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/suncunxu/p/10040232.html
Copyright © 2011-2022 走看看