There are three basic, well-known descriptors that come with Python: property, classmethod, and staticmethod. There’s also a fourth one that you use all the time, but are less likely to know is a descriptor.
Of all the descriptors being shown in this chapter, it’s possible that you only knew of property as a descriptor. Plenty of people even learn the basics of descriptors from it, but a lot of people don’t know that classmethod and staticmethod are descriptors. They feel like super magical constructs built into the language that no one could reproduce in pure Python. Once someone ...