On 2012-06-22, at 3:18 PM, Guido van Rossum wrote: > On Fri, Jun 22, 2012 at 12:10 PM, Yury Selivanov > <yselivanov...@gmail.com> wrote: >> Guido, >> >> On 2012-06-22, at 2:52 PM, Guido van Rossum wrote: ... >> 'empty' will also work. When python-dev collectively decided to >> go with missing attributes, 'empty' didn't yet exist (we added >> it with 'replace()' methods). >> >> If you think that using 'empty' is better, we can add that to the PEP. > > Yes, please do.
OK >>> (2) Could use an example on how to remove and add parameters using >>> replace(). >> >> You have to build a new list of parameters and then pass it to 'replace()'. >> Example (from the actual signature() function implementation): >> >> if isinstance(obj, types.MethodType): >> # In this case we skip the first parameter of the underlying >> # function (usually `self` or `cls`). >> sig = signature(obj.__func__) >> return sig.replace(parameters=tuple(sig.parameters.values())[1:]) >> >>> (3) You are using name(arg1, *, arg2) a lot. I think in most cases you >>> mean for arg2 to be an optional keyword arg, but this notation doesn't >>> convey that it is optional. Can you clarify? >> >> Yes, I meant optional. Would 'name(arg1, *, [arg2])' be better? > > Hardly, because that's not valid syntax. I'd write name(arg1, *, > arg2=<default>). Like replace(*, name=<default>, kind=<default>, default=<default>, annotation=<default>) -> Parameter or replace(*, name=<optional>, kind=<optional>, default=<optional>, annotation=<optional>) -> Parameter >>> (4) "If the object is a method" -- shouldn't that be "bound method"? >>> (Unbound methods are undetectable.) Or is there some wider definition >>> of method? What does it do for static or class methods? >> >> Yes, it should be "If the object is a bound method". We'll fix this >> shortly. > > Great. > >> classmethod as a descriptor returns a BoundMethod (bound to the class), >> staticmethod returns the original unmodified function, so both of >> them are supported automatically. > > Oh, great. IIRC it wasn't always like that. Maybe just add this to the > PEP as a note? OK. I'll clarify that. - Yury _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com