On Thu, Jun 7, 2012 at 10:52 AM, Eric Snow <ericsnowcurren...@gmail.com> wrote: > Furthermore, using __signature__ as a cache may even cause problems. > If the Signature object is cached then any changes to the function > will not be reflected in the Signature object. Certainly that's an > unlikely case, but it is a real case. If f.__signature__ is set, I'd > expect it to be either an explicitly set value or exactly the same as > the first time inspect.signature() was called for that function. We > could make promises about that and do dynamic updates, etc., but it's > not useful enough to go to the trouble. And without the guarantees, I > don't think using it as a cache is a good idea. (And like I said, > allowing/using an explicitly set f.__signature__ is a good thing).
+1 Providing a defined mechanism to declare a public signature is good, but using that mechanism for implicit caching seems like a questionable idea. Even when it *is* cached, I'd be happier if inspect.signature() returned a copy rather than a direct reference to the original. Cheers, Nick. -- Nick Coghlan | ncogh...@gmail.com | Brisbane, Australia _______________________________________________ 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