采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如果在同一个函数,有的地方需要使用装饰器的功能,有的地方不需要装饰器里新加的功能,这种情况怎么处理,加了那个语法糖后就不能正常调用函数了吗
那就有的地方打装饰器,有的地方不打,打不打看你自己的需求。比如你有的函数要记日志有的不记日志,那就自己选择。
不是,我的意思是 我在定义一个函数的时候加了装饰器,但是我在某个场景要调用这个函数的时候不想用他的装饰器要怎么做呢?
加了装饰器就会调用,但是你可以给装饰器传一个参数,自己写装饰器的时候判断下这个参数,如果为True就不执行附加代码。
噢!原来可以这样,谢谢
你这个问题提的好,不然还没往这边想!照着网上试了试,确实很有用,就是写起来有点麻烦
import timedef decorator(*dargs, **dkw): def wrapper(func): def _wrapper(*args, **kw): if dargs[0] == 0: print(time.time()) else: print("No time") return func(*args, **kw) return _wrapper return wrapper@decorator(1)def f(x): print(x)f('function')
import time
def decorator(*dargs, **dkw):
def wrapper(func):
def _wrapper(*args, **kw):
if dargs[0] == 0:
print(time.time())
else:
print("No time")
return func(*args, **kw)
return _wrapper
return wrapper
@decorator(1)
def f(x):
print(x)
f('function')
登录后可查看更多问答,登录/注册
语法精讲/配套练习+思考题/原生爬虫实战
5.5k 7
2.5k 3
2.1k 4
4.1k 22
2.3k 19