-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Python Essentials
By :
Python has a few built-in decorators that will modify a function or a method of a class. For example, in Chapter 11, Class Definitions, we saw @staticmethod and @property, which are used to alter the behavior of a method in a class. The @staticmethod decorator changes a function to work on the class instead of an instance of the class. The @property decorator makes evaluating a no-argument method available via the same syntax as an attribute.
A function decorator that's available in the functools module is @lru_cache. This modifies a function to add memoization. Having cached results can be a significant speed-up. It looks like this:
from functools import lru_cache
from glob import glob
import os
@lru_cache(100)
def find_source(directory):
return glob(os.path.join(directory,"*.py"))In this example, we've imported the @lru_cache decorator. We've also imported the glob.glob() function and the os module so that we can use...