请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

装饰器运用问题

如果在同一个函数,有的地方需要使用装饰器的功能,有的地方不需要装饰器里新加的功能,这种情况怎么处理,加了那个语法糖后就不能正常调用函数了吗

正在回答

2回答

那就有的地方打装饰器,有的地方不打,打不打看你自己的需求。比如你有的函数要记日志有的不记日志,那就自己选择。

0 回复 有任何疑惑可以回复我~
  • 提问者 一直2下去3482599 #1
    不是,我的意思是 我在定义一个函数的时候加了装饰器,但是我在某个场景要调用这个函数的时候不想用他的装饰器要怎么做呢?
    回复 有任何疑惑可以回复我~ 2018-01-31 14:05:03
  • 7七月 回复 提问者 一直2下去3482599 #2
    加了装饰器就会调用,但是你可以给装饰器传一个参数,自己写装饰器的时候判断下这个参数,如果为True就不执行附加代码。
    回复 有任何疑惑可以回复我~ 2018-01-31 14:12:08
  • 提问者 一直2下去3482599 回复 7七月 #3
    噢!原来可以这样,谢谢
    回复 有任何疑惑可以回复我~ 2018-01-31 14:59:26
慕斯卡8323326 2018-02-17 15:11:57

你这个问题提的好,不然还没往这边想!照着网上试了试,确实很有用,就是写起来有点麻烦

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')


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信