python 使用对象和装饰器而不是仅使用一个方法和一些常量的类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用对象和装饰器而不是仅使用一个方法和一些常量的类相关的知识,希望对你有一定的参考价值。

class Job(object):
    def __init__(self, run_at):
        self.run_at = run_at
        print "Scheduled at %s" % run_at

    def _func(self, job):
        raise NotImplementedError

    def run(self, func=None):
        if func is not None:
            self._func = func
            return func
        return self._func(self)
class Job(object):
    run_at = None
    
    def __init__(self):
        print "Scheduled at %s" % self.run_at

    def run(self):
        raise NotImplementedError
from job_object import Job

def delete_expired_stuff(time):
    print "Delete expired stuff before %s" % time

job = Job(run_at='05:00')

@job.run
def do_cleanup(job):
    delete_expired_stuff(job.run_at)

if __name__ == '__main__':
    job.run()
from job_class import Job

def delete_expired_stuff(time):
    print "Delete expired stuff before %s" % time

class CleanupJob(Job):
    # configuration: run at 5am
    run_at = '05:00'

    # implementation: nuke expired sessions
    def run(self):
        delete_expired_stuff(self.run_at)

if __name__ == '__main__':
    CleanupJob().run()

以上是关于python 使用对象和装饰器而不是仅使用一个方法和一些常量的类的主要内容,如果未能解决你的问题,请参考以下文章

python 使用此包装器而不是崩溃从函数中获取默认输出。

我啥时候应该使用装饰器?

Python - 函数属性方法装饰器

python 装饰器总结

python -- 迭代器和装饰器

第十篇:装饰器