Let's see how we could reduce that in a (hypothetical) optionally-typed Python, supposed that we use meaningful variable+classnames (thus usually avoiding the need for parameter descriptions): @precondition(some_validator, lastarg) @postcondition(rv_validator) @classmethod def someMethod(klass, anarg : aClass, otharg : othClass, lastarg : lastClass) -> rClass: # foo By moving preconditions into the type (which is often possible -- in the other case we often don't want to expose the precondition publically, anyway, at least in my limited experience), we can reduce this some more: @postcondition(rv_validator) @classmethod def someMethod(klass, anarg : aClass, otharg : othClass, lastarg : lastClassSubType) -> rClass: # foo The only remaining question would be whether the postcondition should be revealed in the method's "interface" (which I consider the decorations to be part of) - I would also think that usually this isn't the case (question: would you put them into the code in the form of asserts instead? or use the old someMethod = postconditioned(someMethod, rv_validator) syntax?). I'm pretty sure I've made too many assumptions for too many people (and I don't really see the point of my post yet), but oh well :) Cheers, Michael On Wed, 11 Aug 2004 13:57:03 +1200, Greg Ewing <greg at cosc.canterbury.ac.nz> wrote: > > > Perhaps someone can post some real-life use cases written with this > > > syntax, > > > > well, how about this: > > > > def someMethod(klass, anarg, otharg, lastarg): > > """ > > Summary. > > > > Long description that explains the details about someMethod. > > Aliquam venenatis orci in risus. Nunc ornare aliquam > > I was hoping for some real live code, e.g. an excerpt from > PyObjC. This is still a made-up example. > > > @param(anarg, aClass, 'desc of anarg') > > @param(otharg, othClass, 'desc of otharg') > > @param(lastarg, lastClass, "longer desc of lastarg because it's special") > > @return(rClass, 'return value description') > > @precondition(some_validator, lastarg) > > @postcondition(rv_validator) > > @classmethod > > def someMethod(klass, anarg, otharg, lastarg): > > """ > > Summary. > > And this looks awful - the method name is almost completely > lost under the deluge of preceding junk! > > > > Greg Ewing, Computer Science Dept, +--------------------------------------+ > University of Canterbury, | A citizen of NewZealandCorp, a | > Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | > greg at cosc.canterbury.ac.nz +--------------------------------------+ > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/michael.walter%40gmail.com >
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4