Stef Mientki a écrit : > Bruno Desthuilliers wrote: > >> Stef Mientki a écrit : >> >>> Bruno Desthuilliers wrote: >>> >>>> stef a écrit : >> >> (snip) >> >>>>> but tell them that they are going to loose all their globals ??? >>>> >>>> It's a feature. Globals are definitively a BadThing(tm). >>> >>> yes, I know, but my audience will accept that only in the long term. >> >> Unless you clearly explain the benefits... Any code relying on the >> existence of a global is: >> 1/ dependent on the existence of this global >> 2/ harder to understand > > And you think physicians will believe that ?
Aren't physicians supposed to be somewhat cartesians guys ? FWIW, functional languages are mostly used by peoples with a strong mathematical background... > And suppose they believe it, are the willing to stop their research to > rethink and rewrite their code ;-) Not my problem. But anyway, if they really hope to get reliable results, they'd better have bug-free programs, and using globals not only potentially introduces subtle bugs, but also makes code hardly unit-testable... >> >> FWIW, I'm currently fixing a simple Delphi program that's using quite >> a few globals, > > Then it was certainly not written by a Delphi-guy ;-) Yes it was. But that does not imply it was written by a competent Delphi-guy !-) (snip) >> >> # another.py >> import myglobs >> print myglobs.meaning_of_life >> >>> >>> <all other py-files in the project> >>> import Ugly_MatLab_Globals >>> >>> def some_function(): >>> import Ugly_MatLab_Globals >> >> >> You don't have to reimport it here... > > Then I miss something: Probably > TEN = 10 > TWELVE = 12 > def some_function(): > global TEN > TEN = 9 rebinds the 'global' (well... module) name 'TEN'. > TWELVE = 11 creates a *local* name 'TWELVE' and bind it to integer 11. > print TEN, TWELVE > > some_function() #will print 9,11 > print TEN, TWELVE #will print 9,12 > > Or am I mistaken ? You are. [EMAIL PROTECTED] playground $ cat myglobals.py a = None b = None [EMAIL PROTECTED] playground $ cat useglobals.py import myglobals def test(): myglobals.a = "meaning_of_life" myglobals.b = 42 print "myglobals.a : ", myglobals.a print "myglobals.b : ", myglobals.b test() print "myglobals.a : ", myglobals.a print "myglobals.b : ", myglobals.b [EMAIL PROTECTED] playground $ python useglobals.py myglobals.a : None myglobals.b : None myglobals.a : meaning_of_life myglobals.b : 42 -- http://mail.python.org/mailman/listinfo/python-list