python之道14
看代码写结果:
def wrapper(f):
    def inner(*args,**kwargs):
        print(111)
        ret = f(*args,**kwargs)
        print(222)
        return ret
    return inner
def func():
    print(333)
print(444)
func()
print(555)
答案
444
333
555
编写装饰器,在每次执行被装饰函数之前打印一句’每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码’。
答案
def warpper(f):
	def inner(*args,**kwargs):
		print('每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码')
		ret = f(*args,**kwargs)
		return ret
	return inner
@warpper
def func():
	print(111)
func()
为函数写一个装饰器,把函数的返回值 +100 然后再返回。
@wrapper
def func():
    return 7
result = func()
print(result)
答案
def warpper(f):
	def inner(*args,**kwargs):
		ret = f(*args,**kwargs)+ 100
		return ret
	return inner
@wrapper
def func():
    return 7
result = func()
print(result)
# 106
请实现一个装饰器,通过一次调用使用函数重复执行5次。
答案
def wrapper(f):
    def inner(*args,**kwargs):
        for i in range(5):
           f(*args,**kwargs)
    return inner
@wrapper
def func():
    print(222)
func()
# 输出结果
222
222
222
222
222
请实现一个装饰器,每次调用函数时,将函数名以及调用此函数的时间节点写入文件中。
可用代码:
import time
struct_time = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time)) # 当前时间节点
def wrapper():
    pass
def func1(f):
    print(f.__name__)
func1(wrapper)
函数名通过: 函数名.__name__获取。
答案
import time
# struct_time = time.localtime()
# print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time)) # 当前时间节点
def wrapper(f):
    def inner(*args, **kwargs):
        with open('a.txt',mode='r+',encoding='utf-8') as f1:
            f1.read()
            struct_time = time.localtime()
            ret = f(*args, **kwargs)
            f1.write(f"函数名:{f.__name__},当前时间节点:{time.strftime('%Y-%m-%d %H:%M:%S', struct_time)}\n")
            return ret
    return inner
@wrapper
def func1(f):
    print(f.__name__)
func1(wrapper)
# 输出文件的结果
函数名:func1,当前时间节点:2019-06-24 19:08:01
函数名:func1,当前时间节点:2019-06-24 19:08:08
python之道14的更多相关文章
- Python补充06 Python之道
		作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录 ... 
- 彩蛋 Python之道
		彩蛋 Python之道 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 使用下面的语句可以调出Python中的一个彩蛋, impo ... 
- 【转】Python之道
		作者:Vamei 出处:http://www.cnblogs.com/vamei Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录于PEP 20. 语句执行之后,终端 ... 
- Python之道(一)之安装Python
		"Python之道"首先介绍一下在windows系统下怎样安装Python开发环境. (1)下载MSI安装文件 进入网址www.python.org,点击Downloads进入下载 ... 
- 一入python深似海--python之道
		python社区不乏幽默.先来看"python之道"这首诗. 导入this包: import this 输出是一首诗,这首诗总结了Python的风格,能够指导Python程序猿的编 ... 
- Python 30道高频面试题及详细解答
		开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学. 今年的招聘行情并不乐观,小公司 ... 
- Python学习总结14:时间模块datetime & time & calendar  (一)
		Python中的常用于处理时间主要有3个模块datetime模块.time模块和calendar模块. 一.time模块 1. 在Python中表示时间的方式 1)时间戳(timestamp):通常来 ... 
- python几道简单的算法题
		最近看了python的语法,但是总感觉不知道怎么使用它,还是先来敲敲一些简单的程序吧. 1.题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位.十 ... 
- Python开发入门14天集训营-第一章
		python第一章 python变量 变量的作用 存数据 被程序调用和操作 标记数据 声明变量 name = "Ydh" 变量名 = 变量值 变量定义规范: 变量名只能是 字母.数 ... 
随机推荐
- 少用 string.Format
			如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能.这个功能可以更好的帮助开发人员设置字符串格式.下面我们就来看一下为什么要少用 string.Format 而要多 ... 
- java反序列化-ysoserial-调试分析总结篇(3)
			前言: 这篇文章主要分析commoncollections3,这条利用链如yso描述,这个与cc1类似,只是反射调用方法是用的不是invokeTransformer而用的是InstantiateTra ... 
- 达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
			达拉草201771010105<面向对象程序设计(java)>第十八周学习总结 实验十八 总复习 实验时间 2018-12-30 1.实验目的与要求 (1) 综合掌握java基本程序结构 ... 
- 压力测试(三)-自定义变量和CSV可变参数实操
			1.Jmeter用户自定义变量实战 简介:什么是用户自定义变量,怎样使用 为什么使用:很多变量在全局中都有使用,或者测试数据更改,可以在一处定义,四处使用 比如服务器地址 1.线程组->add ... 
- [讨论] 平台建设,我们从架构中去掉kafka?
			目 录 1. 概述... 2 2. 原有结构(带kafka)... 2 3. 改造后的结构(去掉kafka)... 3 4. 对比... 4 1. ... 
- 手写node可读流之流动模式
			node的可读流基于事件 可读流之流动模式,这种流动模式会有一个"开关",每次当"开关"开启的时候,流动模式起作用,如果将这个"开关"设置成 ... 
- 【Amaple教程】2. 模块
			正如它的名字,模块用于amaplejs单页应用的页面分割,所有的跳转更新和代码编写都是以模块为单位的. 定义一个模块 一个模块由<module>标签对包含,内部分为template模板.J ... 
- 前端每日实战:102# 视频演示如何用纯 CSS 创作一个小和尚
			效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/oMmYXp 可交互视频 此视频是可 ... 
- 【30分钟学完】canvas动画|游戏基础(5):重力加速度与模拟摩擦力
			前言 解决运动和碰撞问题后,我们为了让运动环境更加自然,需要加入一些环境因子,比如常见的重力加速度和模拟摩擦力. 阅读本篇前请先打好前面的基础. 本人能力有限,欢迎牛人共同讨论,批评指正. 重力加速度 ... 
- 进阶之路 | 奇妙的Thread之旅
			前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 需要已经具备的知识: Thread的基本概念及使用 AsyncTask的基本概念及使用 学习清单: 线程概述 ... 
