[Python-Dev] LOAD_NAME & classes (original) (raw)
Michael Gilfix mgilfix@eecs.tufts.edu
Tue, 23 Apr 2002 13:05:14 -0400
- Previous message: [Python-Dev] LOAD_NAME & classes
- Next message: [Python-Dev] LOAD_NAME & classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Apr 23 @ 12:43, Tim Peters wrote:
Just FYI, "local()" in Perl is very old, and has always used dynamic scoping rules. If you don't wrap local() around a vrbl decl, you get a global vrbl instead, and that's also very old. What's relatively new is the "my()" vrbl wrapper, which asks for a lexically scoped vrbl. What's very new is "our()", which I still haven't figured out:
An "our" declares the listed variables to be valid globals within the enclosing block, file, or eval. That is, it has the same scoping rules as a "my" declaration, but does not create a local variable. If more than one value is listed, the list must be placed in parentheses. The our declaration has no semantic effect unless "use strict vars" is in effect, in which case it lets you use the declared global variable without qualifying it with a package name. (But only within the lexical scope of the our declaration. In this it differs from "use vars", which is package scoped.) Anyone want to make a motion that we not ape Perl's scoping rules ?
The our is akin to declaring something static in C. Except in Perl, it can apply to an enclosure as well since you can build funcs dynamically. Yay. I think python's scoping rules work just fine :)
Has there ever been a discussion about some easy or straight-forward way of sharing a global instance across modules? For example, in a gui app, you might want to structure the program such that there's a global instance app (main.app) of the application that other modules might want to query. I was never to happy with importing main and then using main.app... I felt like I wanted to qualify it as a global, like:
from main import global app
-- Mike
-- Michael Gilfix mgilfix@eecs.tufts.edu
For my gpg public key: http://www.eecs.tufts.edu/~mgilfix/contact.html
- Previous message: [Python-Dev] LOAD_NAME & classes
- Next message: [Python-Dev] LOAD_NAME & classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]