Can __iter__ be used as a classmethod?
theller at python.net
Tue Mar 11 15:22:31 CET 2003
"Greg Ewing (using news.cis.dfn.de)" <me at privacy.net> writes:
> Alex Martelli wrote:
> > Aren't these reasons enough? How else would you code a method that
> > you can indifferently call either on any instance or on the class
> > object itself?
> How often do people actually *need* that functionality,
> though? Smalltalkers don't seem to be bothered by the
> need to know whether to call a method on a class or an
> instance. Can someone provide a compelling use case
> for this in Python?
Although I use metaclasses and class-methods extensively in the ctypes
module, I haven't yet needed to call a class-method from an instance.
Maybe 'classmethod' is as weird as what some people aks for in this
forum (and they are overly happy if I point out that it is indeed
possible, while the 'right' answer would probably be 'you don't want to
desing your program in this way'): Have a method that binds to the class
if called from the class, and binds to the instance if called from an
> > And _having_ to write a custom metaclass as the
> > only way to get classmethods would be somewhat of an overkill.
While Guido doesn't like this notation, I actually find it nice:
(Donald Beaudry had a similar notation in his objectmodule.c, which
also provided class methods).
More information about the Python-list