On 12/23/2009 2:27 PM Albert-Jan Roskam said...
I was studying the code on
http://matplotlib.sourceforge.net/examples/api/radar_chart.html.

Isn't it very unusual that a class is defined within a function?

Not when defining factory creation functions which a quick look at this code confirms that's what this says it's doing. They're often used when creating compatibility layers to provide common named methods.

Why not use a class instance inside the function instead?

That's a question for the original developer. You can get to the same place in many different ways, and the concept of 'There should be one-- and preferably only one --obvious way to do it.' no longer commands the same respect at this level of design.

No methods of the
class can currently be inherited outside the scope of the function, right?

Yes -- the class has served it's purpose once it's been registered. It can of course be reached and could likely be invoked and could even possibly be used to create new instances, but you'd have to introspect and find the right __class__ attribute. Both this level of introspection and factory methods are intermediate to advanced techniques that most of us will only rarely need, but it's good to know it can be done.

Emile

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to