On Wed, Jun 20, 2018 at 10:03 AM Serhiy Storchaka <storch...@gmail.com> wrote:
> 20.06.18 19:37, Guido van Rossum пише: > > On Wed, Jun 20, 2018 at 9:31 AM Serhiy Storchaka > > <storch...@gmail.com > > <mailto:storch...@gmail.com>> wrote: > > > > 20.06.18 19:20, Guido van Rossum пише: > > > +1 -- when we introduced these we didn't see the use case so > > clearly, > > > but it definitely exists. > > > > How would you call a classmethod descriptor in this case? > > > > > > With an extra first argument that's a class -- it should just call the > > wrapped function with whatever args are presented to the descriptior. > > This differs from calling a class method outside of the class definition > body. And in the class definition body the class is not defined still. > > class Spam: > @classmethod > def utility(arg): > ... > > value = utility(???, arg) > Maybe we're misunderstanding each other? I would think that calling the classmethod object directly would just call the underlying function, so this should have to call utility() with a single arg. This is really the only option, since the descriptor doesn't have any context. In any case it should probably `def utility(cls)` in that example to clarify that the first arg to a class method is a class. -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/