Decorators ve @ ne işe yarar?

Su soru cevaplanmamis ama cevabinin “evet” oldugunu varsayarsak, sondan ikincinin function’i cagirani.

import functools
import datetime

def stopwatch(function, request):
    @functools.wraps(function)
    def inner(*args, **kwargs):
        start = datetime.datetime.now()
        function(*args, **kwargs)
        stop = datetime.datetime.now()
        timedown = (stop - start)
        if request == 0:
            return start
        elif request == 1:
            return stop
        elif request == 100:
            return [start, stop, timedown.microseconds]
        else:
            return timedown.microseconds
    return inner

def text():
    print("BC1428")
used = stopwatch(text, 100)
help(used)
print(used())

veya

import functools
import datetime

def stopwatch(request):
	def outer(function):
		@functools.wraps(function)
		def inner(*args, **kwargs):
			start = datetime.datetime.now()
			function(*args, **kwargs)
			stop = datetime.datetime.now()
			timedown = (stop - start)
			if request == 0:
				return start
			elif request == 1:
				return stop
			elif request == 100:
				return [start, stop, timedown.microseconds]
			else:
				return timedown.microseconds
		return inner
	return outer

@stopwatch(100)
def text():
    print("BC1428")

help(text)
print(text())
1 Beğeni