[Tutor] help -Global name xxxxxxxx is not definied.
Peter Otten
__peter__ at web.de
Thu Aug 9 14:45:58 CEST 2012
leon zaat wrote:
> Hello everyone,
>
> Can anybody help me with this problem.
> Ik have a program that i' am modifying.
>
> Ik build a function to export data to a csv file. I tried the functions
> over different parts, that needed to be extracted. The parts on it self
> worked fine. Now I put all parts in my function. Because there was a
> sections that was all alike for the parts, i thought to put it in a second
> function.
>
> This is the code I written:
> # schrijven van de records
> def schrijfExportRecord():
> sql1="";
...
> def ExportBestanden(self, event):
> ofile=open(r'D:\bestanden\BAG\adrescoordinaten.csv', 'wb')
...
> When i run the program i got the following message:
> NameError: global name 'schrijfExportRecord' is not found
>
> What I am doing wrong and how can i fix it?
Judging from the indentation and the 'self' argument the code you quote is
inside a class, e. g.
class Whatever:
def schrijfExportRecord():
...
def ExportBestanden(self, event):
...
This layout makes shrijfExportRecord() a method and you have to
(1) add a self argument: def schrijfExportRecord(self): ...
(2) invoke it in other methods as self.schrijfExportRecord()
Alternatively you can leave it as is and move it out of the class (don't
forget to fix the indentation accordingly):
def schrijfExportRecord():
...
class Whatever:
def ExportBestanden(self, event):
...
By the way
del wpl[:];
is probably "cargo cult" (the code has no effect) because the list is
garbage-collected at the end of the function anyway. Also, in Python you
don't need to place a ';' at the end of a statement unless you put multiple
statements into one line (which is discouraged).
More information about the Tutor
mailing list