python 通用装饰器,带有参数的装饰器,
# 使用装饰器对有返回值的函数进行装饰
# def func(functionName):
# print('---func-1----')
# def func_in():
# print("----func_in---1-")
# x = functionName() #保存返回来的hahah
# print("----func_in---2-")
# return x
# print('---func-2----')
# return func_in
# @func
# def test():
# print("-----test-----")
# return "haha"
# ret = test()
# print("test return value is %s"%ret)
# ---func-1----
# ---func-2----
# ----func_in---1-
# -----test-----
# ----func_in---2-
# test return value is haha
# 使用通用装饰器对函数进行装饰
# def func(functionName):
# def func_in(*args,**kwatgs):
# print("记录日志")
# x = functionName(*args,**kwatgs)
# return x
# return func_in
# @func
# def test():
# print("-----test-----")
# return "haha"
# ret = test()
# print("test return value is %s"%ret)
# # -----test-----
# # test return value is haha
# @func
# def test2():
# print("----test2----")
# a = test2()
# print(a)
# # ----test2----
# # None
# @func
# def test3(a):
# print("-----test3----a=%d"%a)
# test3(10)
# -----test3----a=10
# 记录日志
# -----test-----
# test return value is haha
# 记录日志
# ----test2----
# None
# 记录日志
# -----test3----a=10
# 带有参数的装饰器、、
def func_arg(arg):
print(arg)
def func(functionName):
print('----func----')
def func_in():
print("--记录日志---")
print(arg)
if arg=='呵呵':
functionName()
functionName()
else:
functionName()
return func_in
return func
# 1.先执行func_arg('呵呵')函数,这个函数return的结果是func这个函数的引用
# 2.@func
# 3.使用@func对test进行装饰
# 带有参数的装饰器,能够起到在运行时,有不同的功能
@func_arg('呵呵')
def test():
print("-----test-----")
ret = test()
# 呵呵
# ----func----
# --记录日志---
# -----test-----
@func_arg("haha")
def test2():
print("--test2--")
test2()
# haha
# ----func----
# --记录日志---
# haha
# --test2--
python 通用装饰器,带有参数的装饰器,的更多相关文章
- python之带有参数的装饰器
一个小demo def set_level(level_num): def set_func(func): def call_func(*args, **kwargs): if level_num = ...
- python 装饰器 第七步:带有参数的装饰器
#第七步:带有参数的装饰器 #两个基本函数用同一个装饰器装饰 def outer(arg): print(arg) #这是装饰器的代码 def kuozhan(func): print(func) # ...
- python 装饰器 第五步(1):带有参数的装饰器
#第五步:带有参数的装饰器 #用于扩展基本函数的函数 def kuozhan(func): #内部函数(扩展之后的eat函数) #5由于调用的时候传了两个参数,未来的eat函数没有参数接收 #5报错的 ...
- Python 带有参数的装饰器
def wrapper_out(flag): # 装饰器本身的参数 def wrapper(fn): # 目标函数 def inner(*args, **kwargs): # 目标函数执行需要的参数 ...
- [python] 带有参数并且传递参数的装饰器
场景时这样的,我有个一大堆任务,我要给这些任务计时,入库.就需要一个带有参数的装饰器来记录任务名称, 在任务执行前和执行之后都需要记录任务当时执行的时刻. #-*- encoding=utf-8 -* ...
- Python带参数的装饰器
在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...
- Python 基础之面向对象之八步理解装饰器
装饰器:在不改变原有代码的情况下,为该原函数扩展新功能特征:返回新函数,替换旧函数语法:@ 语法糖 1.装饰器原型 #例1: def kuozhan(func): def newfunc(): ...
- python基础之迭代器、生成器、装饰器
一.列表生成式 a = [0,1,2,3,4,5,6,7,8,9] b = [] for i in a: b.append(i+1) print(b) a = b print(a) --------- ...
- Python 带参数的装饰器 [2] 函数参数类型检查
在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里.我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动.下面我们 ...
随机推荐
- C# 如何进行图像的压缩
从网上找的非常有效.图片3M到500k private static ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCode ...
- Elasticsearch 5.4.3实战--Java API调用:索引mapping创建
因为项目开发使用的是Java语言, 项目的开发架构是Spring MVC+ maven的jar包管理, 所以今天重点说说ES 5.4.3 的Java API的源码实战 1. pom.xml文件增加依 ...
- 很清晰的解读i2c协议【转】
转自:https://blog.csdn.net/weixin_41718085/article/details/79376823 转载:http://dpinglee.blog.163.com/bl ...
- Django 的系统时区设置 RPC
PRC Deprecated +08:00 +08:00 Link to Asia/Shanghai settings.py 文件的设置项: TIME_ZONE = 'PRC' 来源 ...
- Liunx之Centos系统无人值守全自动化安装
作者:邓聪聪 定制centos6.8自动安装ISO光盘 安装系统为centos6.8 (base server),安装方式为全新安装 使用ext4分区格式 安装前可以交互输入root密码,主机名,分区 ...
- RDLC系列之一 简介和入门
一.简介 RDLC报表,通过Report Viewer Control来实现,制作微软RDLC报表由以下三部分构成:1.制作自己的DateSet集合(就是报表的数据集):2.制作自己的报表文件.rdl ...
- 如何确定windows启动类型是bios还是uefi
原文地址:http://www.kqidong.com/bios/3728.html 如何确定windows启动类型是bios还是uefi?随着装机越来越简单,大家对安装系统充满信心,但是了解到启动类 ...
- VS2017中用C#调试DLL
1.首先将DLL工程导入到包含C#应用程序工程的解决方案中 2.将DLL和C#工程都改为[Debug]模式 3.设置DLL工程属性,右键点击DLL工程,选择[属性],选择[常规],将[输出目录]改为C ...
- openvpn 给客户端固定隧道IP地址
openvpn 客户端拿到的ip地址是服务器端随机分配的,因此需要远程ssh到一个终端时,它的ip地址有时会变,如何给他固定IP地址呢. 方法如下: 1) 在服务器端使用的配置文件 server.co ...
- python学习第5天
数据类型:字典 字典 why: 列表的缺点: 1,列表如果存储的数据比较多,那么他的查询速度相对慢. 2,列表存储的数据关联性不强. what: python基础数据类型之一:字典. python中唯 ...