Paul Rubin wrote: >>Which is evaluated at runtime, does not require that the actual global >>variable be pre-existing, and does not create the global variable if >>not actually assigned. I think that is pretty different than your >>proposal semantics. > > > Different how?
Aren't you looking for some of compile-time checking that ensures that only declared variables are actually used? If so, how does global help? >>Your making this feature "optional" contradicts the subject of this >>thread i.e. declarations being necessary. > > They're necessary if you enable the option. OK. Would it work on a per-module basis or globally? > def do_add(x->str, y->str): > return '%s://%s' % (x, y) > > def do_something(node->Node): > if node.namespace == XML_NAMESPACE: > return do_add('http://', node.namespace) > elif node.namespace == ... Wouldn't an error be generated because XML_NAMESPACE is not declared? And I notice that you are not doing any checking that "namespace" is a valid attribute of the node object. Aren't the typos class of error that you are looking to catch just as likely to occur for attributes as variables? Cheers, Brian -- http://mail.python.org/mailman/listinfo/python-list