Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Decorating a class-help
#1
Hi!

I'm not too sure why the following code is working:

class Statics():
    lock = threading.Lock()


def thread_safe(func):
    def inner(*args,**kwargs):
        with Statics.lock:
            result = func(*args, **kwargs)
        return result
    return inner


@thread_safe
def singleton(class_):
    instances = {}
    def getinstance(*args, **kwargs):
        if class_ not in instances:
            instances[class_] = class_(*args, **kwargs)
        return instances[class_]
    return getinstance
Specifically,the singleton decorator,which decorates a class,is working, but I don't understand why.
Usually a class decorator returns another class.
Reply


Messages In This Thread
Decorating a class-help - by yoniker - May-29-2019, 03:55 PM
RE: Decorating a class-help - by Gribouillis - May-29-2019, 05:13 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020