展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

装饰器

  • 写法1
import time
# 定义一个装饰器函数
def sayLocal(func):
def wrapper():
curTime = func()
return f'当地时间: {curTime}'
return wrapper
def getXXXTime():
return time.strftime('%Y_%m_%d %H:%M:%S',time.localtime())
# 装饰 getXXXTime
getXXXTime = sayLocal(getXXXTime)
print (getXXXTime())
  • 写法2
import time
def sayLocal(func):
def wrapper():
curTime = func()
return f'当地时间: {curTime}'
return wrapper
@sayLocal
def getXXXTime():
return time.strftime('%Y_%m_%d %H:%M:%S',time.localtime())
print (getXXXTime())
  • 案例2
import time
def sayLocal(func):
def wrapper(*args,**kargs):
curTime = func(*args,**kargs)
return f'当地时间: {curTime}'
return wrapper
@sayLocal
def getXXXTimeFormat1(name):
curTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
return f'{curTime} ,数据采集者:{name} '
@sayLocal
def getXXXTimeFormat2(name,place):
curTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
return f'{curTime} ,数据采集者:{name} , 采集地:{place}'
print (getXXXTimeFormat1('张三'))
print (getXXXTimeFormat2('张三',place='北京'))
# *args 可以接受一切 不指定参数名 的传参方式 , 比如 '张三'
# **kargs 可以接受一切 指定参数名 的传参方式 , 比如 place='北京'
posted @   DogLeftover  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
历史上的今天:
2022-10-08 标识符、运算符
2022-10-08 字面量、注释、变量、数据类型、数据类型转换
2022-10-08 下载安装go,eclipse配置go
2022-10-08 python开发环境
点击右上角即可分享
微信分享提示