How about user-defined keywords? Suppose you could write
statement opening def opening(path, mode): f = open(path, mode) try: yield finally: close(f) which would then allow opening "myfile", "w" as f: do_something_with(f) The 'statement' statement declares to the parser that an identifier is to be treated as a keyword introducing a block statement when it appears as the first token in a statement. This would allow keywordless block-statements that look very similar to built-in statements, without any danger of forgetting to make a function call, since a call would be implicit in all such block-statements. A 'statement' declaration would be needed in all modules which use the generator, e.g. statement opening from filestuff import opening For convenience, this could be abbreviated to from filestuff import statement opening There could also be an abbreviation def statement opening(...): ... for when you're defining and using it in the same module. Sufficiently smart editors would understand the 'statement' declarations and highlight accordingly, making these user-defined statements look even more like the native ones. -- Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of USA Inc. | [EMAIL PROTECTED] +--------------------------------------+ _______________________________________________ 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