help with class
r
rt8396 at gmail.com
Wed Nov 26 17:13:04 EST 2008
On Nov 26, 4:08 pm, Arnaud Delobelle <arno... at googlemail.com> wrote:
> tekion <tek... at gmail.com> writes:
> > Hello,
> > I am playing with class. Below is the code snippet:
> > #!/usr/bin/python
> > 2
> > 3 class test_class:
> > 4 #import gzip
> > 5 def __init__(self,file):
> > 6 self.file = file
> > 7 def open_file(self):
> > 8 try:
> > 9 print "file: %s" % self.file
> > 10 self.xml_file = gzip.GzipFile(self.file,'r')
> > 11 except:
> > 12 print "an exception has occured"
> > 13 for line in self.xml_file:
> > 14 print "line: %s" % line
> > 15 self.xml_file.close()
> > 16
> > 17
> > 18 if __name__ == '__main__':
> > 19 import gzip
> > 20 import sys
> > 21 t = test_class( sys.argv[1] )
> > 22 t.open_file()
>
> > My question are:
> > 1. Why do I need to use "import gzip" on main section to get it the
> > script to work? I would assume you need the import of gzip in the
> > class section.
>
> This is how Python works. Here is the relevant extract from the
> Reference Manual:
>
> A scope defines the visibility of a name within a block. If a local
> variable is defined in a block, its scope includes that block. If
> the definition occurs in a function block, the scope extends to any
> blocks contained within the defining one, unless a contained block
> introduces a different binding for the name. The scope of names
> defined in a class block is limited to the class block; it does not
> extend to the code blocks of methods – this includes generator
> expressions since they are implemented using a function scope.
>
> (Quoted fromhttp://docs.python.org/reference/executionmodel.html)
>
> > 2. What is the proper way of using module in a class you are creating?
>
> import it into the global namespace of the module in which you are
> defining your class.
>
> --
> Arnaud
That's funny...this same question was asked at 11:30 this morning
see thread:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/a42bf1e9504c3c3f?hl=en#
More information about the Python-list
mailing list