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

Reply via email to