Bruno Desthuilliers wrote: > Stef Mientki a écrit : >> Bruno Desthuilliers wrote: >> >>> stef a écrit : > (snip) >>>> You can explain your collegaes, that >>>> - the startindex of arrays changes from 1 to 0 >>>> - slices are upto, instead of including the final border >>>> - indention is thé key >>>> And tell them about all beautiful things in Python, >>>> 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 ? And suppose they believe it, are the willing to stop their research to rethink and rewrite their code ;-)
> > 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 ;-) and since I'm not familiar with ObjectPascal (my experience > with Pascal boils down to a few cs101 stuff like implementing a linked > list, some 6 or 7 years ago), I'm losing a lost of time with these [bip] > globals... > >> But maybe this idea works: >> >> <file Ugly_MatLab_Globals.py> >> global var1 >> global var2 >> </file Ugly_MatLab_Globals.py> > > The 'global' statement only makes sens within a function, and it's only > a declaration, not a definition (-> it won't bind the following name by > itself - only tell the interpreter that this name is to be considered as > belonging to the module's namesepace ). > > The minimal working example requires that you assign a default value: > > # myglobs.py > meaning_of_life = 42 thanks for the tip. > > # 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: TEN = 10 TWELVE = 12 def some_function(): global TEN TEN = 9 TWELVE = 11 print TEN, TWELVE some_function() #will print 9,11 print TEN, TWELVE #will print 9,12 Or am I mistaken ? cheers, Stef Mientki -- http://mail.python.org/mailman/listinfo/python-list