第二十九节,装饰器

装饰器简介

装饰器,用于装饰某个函数,或者方法,或者类
装饰可以用于某个函数或者方法或者类在执行之前或者执行后做某些操作,也可以理解为,为某个函数或者方法或者类添加功能
好处:是不用改变原来的函数,就可以给原来的函数添加功能
方法:
1,定义一个函数,里面传一个值用于接收被装饰函数(叫做装饰器函数)
2,在装饰器函数里定义一个函数(叫做装饰器功能函数)来写添加功能和执行被装饰函数
3,在装饰器功能函数return返回被装饰函数给装饰器功能函数,并且在装饰器函数return返回装饰器功能函数给装饰器函数

4,在被装饰函数上面写上 @装饰器函数名 就可以调用执行装饰器函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#装饰器函数
def zh(sh):
    def zhshi():    #装饰器功能函数
        print("在执行被装饰函数前添加功能")
        r =  sh()   # 执行装饰器函数接收到的被装饰函数,也就是执行被装饰函数
        print("在执行被装饰函数后添加功能")
        return r    #将被装饰函数执行的结果返回给装饰器功能函数
    return zhshi    #将装饰器功能函数返回给装饰器函数

@zh     # @zh 的意思是执行装饰器函数,并且将被装饰的函数名,当做参数传给装饰器函数,并且将装饰器函数的返回值重新赋值给被装饰的函数
#被装饰函数
def f1():
    print("f1被装饰函数功能")

#执行f1函数
f1()
# 在执行被装饰函数前添加功能
# f1被装饰函数功能
# 在执行被装饰函数后添加功能

时间: 2024-10-11 05:27:53

第二十九节,装饰器的相关文章

第二十九节(java-开发简单音乐播放器 )

package com.tanzhou.jmf; import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import javax.swing.*; // JFrame java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大

Scala入门到精通——第二十五节 提取器(Extractor)

作者:摇摆少年梦 视频地址:http://www.xuetuwuyou.com/course/12 本节主要内容 apply与unapply方法 零变量或变量的模式匹配 提取器与序列模式 scala中的占位符使用总结 1. apply与unapply方法 apply方法我们已经非常熟悉了,它帮助我们无需new操作就可以创建对象,而unapply方法则用于析构出对象,在模式匹配中特别提到,如果一个类要能够应用于模式匹配当中,必须将类声明为case class,因为一旦被定义为case class,

第二十九节,目标检测算法之Fast R-CNN算法详解

Girshick, Ross. "Fast r-cnn." Proceedings of the IEEE International Conference on Computer Vision. 2015. 继2014年的RCNN之后,Ross Girshick在15年推出Fast RCNN,构思精巧,流程更为紧凑,大幅提升了目标检测的速度.在Github上提供了源码. 之所以提出Fast R-CNN,主要是因为R-CNN存在以下几个问题: 训练分多步.通过上一篇博文我们知道R-CN

Scala入门到精通——第二十九节 Scala数据库编程

本节主要内容 Scala Mavenproject的创建 Scala JDBC方式訪问MySQL Slick简单介绍 Slick数据库编程实战 SQL与Slick相互转换 本课程在多数内容是在官方教程上改动而来的,官方给的样例是H2数据库上的.经过本人改造,用在MySQL数据库上,官方教程地址:http://slick.typesafe.com/doc/2.1.0/sql-to-slick.html 1. Scala Mavenproject的创建 本节的project项目採用的是Maven P

[ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42016107 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 为方便起见,使用sencha cmd创建一个工程,使用app buil

学习笔记第二十九节课

监控io性能 iostat iotop 在运维工作中是除了 cpu 内存外 也是一个重要的指标,是查看磁盘的问题. 有时候cpu 内存都有剩余,负载却很高,用vmstat 查看,发现 b 或者wa 比较大.说明磁盘有瓶颈. iostat 和sar是同一个包.用法是 直接回车 也可以加 数字 . 显示出来的东西就i是你的硬盘 的读写速度.这个看不出来什么 和sar -q 是差不多的. 主要的是 iostat -x 里面的%util 这个百分比表示io等待. 原文地址:http://blog.51c

第二十九节: 模拟登陆

一.126,163邮箱模拟登陆 1 # -*- coding:utf-8 -*- 2 import time 3 from selenium import webdriver 4 def login126_or_163emall(url): 5 login_name = input("请输入账号:") 6 login_password = input("请输入密码:") 7 8 # 打开自动测试软件Chrome 9 driver = webdriver.Chrome

第二百四十九节,Bootstrap附加导航插件

第二百四十九节,Bootstrap附加导航插件 学习要点: 1.附加导航插件 本节课我们主要学习一下 Bootstrap 中的附加导航插件 一.附加导航 附加导航即粘贴在屏幕某处实现锚点功能. 基本实例

大白话5分钟带你走进人工智能-第十九节逻辑回归之优化点(4)

                                                                                      第十九节逻辑回归之优化点(4) 上一节中我们讲解了逻辑回归导函数求解的问题,一步步推导出交叉熵损失函数的梯度.很是不容易,这节中我们一起看下逻辑回归的优化有哪些点? 第一点关于逻辑回归优化:和多元性回归是一模一样.要不要设置w0?比如下图: ? 之前说多元性回归是做拟合,假如现在要分类的话,我们知道分类对于一维来说是找一个点,