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" 变量名 = 变量值 变量定义规范: 变量名只能是 字母.数 ...
随机推荐
- CSS——NO.6(盒模型)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- unittest实战(三):用例编写
# coding:utf-8import unittestfrom selenium import webdriverimport timefrom ddt import ddt, data, unp ...
- 添加Windows 10开机启动项:No Hyper-V
在Windows 10 1903版本加入了一项沙盒功能,1903版本以上的系统可以在控制面板-程序和功能-启用或关闭Windows功能中勾选Windows 沙盒选项,根据操作重启后即可打开沙盒功能. ...
- 查询mysql版本号
mysql> select version(); +------------+| version() |+------------+| 5.7.23-log |+------------+1 r ...
- fsLayuiPlugin数据字典使用
概述 数据字典主要解决下拉框数据填充和数据表格转义处理,一个数据字典可以多处使用. 1.多个页面下拉框使用同样的数据,改一个地方需要把所有页面都要修改 2.数据表格转义代替自己手动写templet解析 ...
- 前端每日实战:17# 视频演示如何用纯 CSS 创作炫酷的同心矩形旋转动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/bMvbRp 可交互视频教程 此视频 ...
- deepin中安装pycharm过程
安装过程真的超级简单!一遍就会! 1.下载pycharm(下载地址):https://www.jetbrains.com/pycharm/ 2.在网址中找到对应的版本:在deepin中选择linux版 ...
- 微信APP生命周期、页面生命周期
目录 小程序的启动流程 app生命周期 页面的生命周期 页面的生命周期(图) 小程序的启动流程 我们画一个图来表示一下,整个小程序的启动流程,我们就知道了: app生命周期 执行App()函数也就是注 ...
- VUE三 vue-router(路由)详解
前端路由 根据不同的 url 地址展示不同的内容或页面,无需依赖服务器根据不同URL进行页面展示操作 优点 用户体验好,不需要每次都从服务器全部获取,快速展现给用户 缺点 使用浏览器的前进,后退键的时 ...
- js中 __proto__ 和 prototype
js中的对象都有__proto__属性存在[隐式原型],注意是两个_, 1,javascript对象的__proto__指向的是该对象的构造函数的原型对象,即constructor.prototype ...