On 5/6/2010 8:33 PM, Alex Hall wrote:
Hi all,
I have a file, pasted below for what good it will do, which makes a
couple conditional calls to a function called writeDefaults. However,
when I manually trigger a condition that causes the function to be
called, Python gives me a name error and says that my writeDefaults
does not exist.
It does not, when you try to call it, because the call occurs before you
define it. Python code is executed top to bottom and function defines
are executable statements. I suspect that you have used some other
language that operates differently.
...
#first, load the ini file setting
#so where is the ini? script_path/config.ini, of course!
iniLoc=helpers.progdir+'\\config.ini'
iniLoc=r'c:\arm\config.ni'
#set up the ini object to read and write settings
if(os.path.exists(iniLoc)):
ini=ConfigObj(iniLoc)
else:
speak("The i n i file was not found. Now generating a default file.")
writeDefaults()
#end except
writeDefaults is not yet defined
...
def writeDefaults():
global ini
global iniLoc
ini.filename=iniLoc
ini["general"]=general
ini["enableModes"]=enableModes
ini["weatherOptions"]=weatherOptions
ini["armOptions"]=armOptions
ini["templates"]=templates
#create the new file
ini.write()
#end def
Now it is. Move you def statements up closer to the top of the file.
Terry Jan Reedy
--
http://mail.python.org/mailman/listinfo/python-list