On 05/29/2015 10:03 AM, sohcahto...@gmail.com wrote:
On Friday, May 29, 2015 at 9:02:06 AM UTC-7, Mike Driscoll wrote:
I've been asked on several occasions to write about intermediate or advanced
topics
in Python and I was wondering what the community considers to be
"intermediate" or
"advanced". I realize we're all growing in our abilities with the language, so
this
is going to be very subjective, but I am still curious what my fellow Python
developers think about this topic.
Metaclasses.
I've read about them. I still don't understand them, why you would want them,
and what you gain from them.
Metaclasses change the way a class behaves.
For example, the new (in 3.4) Enum class uses a metaclass.
class SomeEnum(Enum):
first = 1
second = 2
third = 3
The metaclass changes normal class behavior to:
- support iterating: list(SomeEnum) --> [SomeEnum.first, SomeEnum.second,
SomeEnum.third]
- support a length: len(SomeEnum) --> 3
- not allow new instances to be created: --> SomeEnum(1) is SomeEnum(1) #
True
--
~Ethan~
--
https://mail.python.org/mailman/listinfo/python-list