Untitled

mail@pastecode.io avatar
unknown
python
2 years ago
990 B
1
Indexable
Never
d1 = {}
d2 = {}
def dec1(func):
    f=0
    def wrapper(*args, **kwargs):
        nonlocal f
        global d1,d2
        f += 1
        d1[func] = f
        print("dec1 --------------", func.__name__,d1[func])

        return func(*args, **kwargs)
    return wrapper
@dec1
def dec2(func):
    f=0
    def wrapper(*args, **kwargs):
        nonlocal f
        global d1, d2
        f += 1
        d2[func] = f
        print("dec2 --------------", func.__name__, d2[func])
        return func(*args, **kwargs)
    return wrapper

@dec1
def func1():
    if len(d1) == len(d2):
            d1[func1.__name__] = d1[func1.__name__]-1
    return ' a '

@dec2
def func2(var1):
    if len(d1) == len(d2):
        d2[func2.__name__] = d2[func2.__name__]-1
        return ' b '+str(var1)+' b '

@dec1
@dec2
def func3(var1=' c '):
    d1[func3.__name__] = d1[func3.__name__]+1
    d2[func3.__name__] = d2[func3.__name__]+1
    return ' c '+str(var1)+' c '

print(func1())
print(func2(5))
print(func3())