New submission from Terry J. Reedy: >>> import inspect >>> class C: def meth(*args): pass >>> str(inspect.signature(C.meth)) '(*args)' >>> c=C() >>> str(s=inspect.signature(c.meth)) '()'
*args should have been left in even for the bound method, as idlelib calltips do. Since '*' is not a word character, idlelib.Calltips._first_param = re.compile('(?<=\()\w*\,?\s*') does not see '*args' as a substring to be deleted with argspec = _first_param.sub("", argspec) The same comment applies to def meth2(**kwds): pass even though calling the bound method would fail. ---------- messages: 209378 nosy: terry.reedy, yselivanov priority: normal severity: normal stage: needs patch status: open title: inspect.signature removes initial starred method params (bug) type: behavior versions: Python 3.3, Python 3.4 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue20401> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com