Bob Ippolito <bob at redivi.com> writes: > Here's a quick overview: > > def foo(args) [sugary, expressions, list]: > pass > > This is equivalent to: > > def foo(args): > pass > foo = list(expressions(sugary(foo))) > > This evaluation order is Guido approved, though at least one person > wanted it to be the other way around > > One would use this in scenarios such as: > > class FooClass(object): > def className(klass) [classmethod]: > return klass.__name__ > > or, even more importantly (to me anyway): > > # we would change PyObjC to make this a built-in feature.. but, for > # completeness: > import objc > def signature(sig): > def _signature(fn): > return objc.selector(fn, signature=sig) > return _signature > > class FooClass(NSObject): > def returnsAnInteger(self) [signature('i@:')]: > return 1 > def returnsVoidTakesAnInteger_(self, anInteger) [signature('v@:i')]: > pass I was thinking of a similar usecase for ctypes, defining C callback functions. In ctypes, you would be able to write """ WndProc = WINFUNCTYPE(c_int, HWND, MSG, WPARAM, LPARAM) def my_wndproc(hwnd, msg, wParam, lParam) [WndProc]: .... """ instead of this """ WndProc = WINFUNCTYPE(c_int, HWND, MSG, WPARAM, LPARAM) def my_wndproc(hwnd, msg, wParam, lParam): .... my_wndproc = WndProc(my_wndproc) """ BTW (I have this patch not yet applied), is it possible to use more than one line, in this way? def function(arg1, arg2, arg3, arg4, arg5, arg6) [dothis, dothat, doanother]: All in all, I'm +1 on the patch. Thomas
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