Chciałbym napisać dekorator, który ograniczy liczbę razy funkcja może być wykonana, coś w następującej składni:W jaki sposób są napisane te typy dekoratorów Pythona?
@max_execs(5)
def my_method(*a,**k):
# do something here
pass
myślę, że to możliwe, aby napisać ten typ dekoratora, ale don Nie wiem jak. Myślę, że funkcja nie będzie pierwszym argumentem dekoratora, prawda? Chciałbym „zwykły” dekorator realizacji, a nie jakąś klasę z połączeń metody.
Powodem tego jest to, aby dowiedzieć się, jak są one napisane. Proszę wyjaśnić składnię i sposób działania tego dekoratora.
podczas stosowania tego dekoratora, w jaki sposób kod jest "tłumaczony" przez Pythona? Na przykład, jeśli moja metoda nazywa się blabla i zastosuję atrybut max_execs, w jaki sposób Python to zobaczy? blabla = max_execs (5) (blabla)? – Geo
Zaktualizowałem odpowiedź, aby dołączyć tłumaczenie, ale masz odpowiedni pomysł. – mipadi