On Jul 28, 4:54 am, Hussein B <[EMAIL PROTECTED]> wrote: > Hi. > I'm a Java guy and I'm playing around Python these days... > In Java, we organize our classes into packages and then jarring the > packages into JAR files. > What are modules in Python? > What is the equivalent of modules in Java?
I'm new myself, coming from Perl and Java. Take my comments with the appropriate salt. Here's my understanding: 1) JARs are a bit of a Java oddity. The other languages I've worked with don't really combine their packaging method for transport with their packaging method of access. Put another way, you may get a zipfile or tarball of library files, but they aren't USED in that format, they are just transported in that format. You unzip them and use the compiled libraries directly. Java appears to be unusual there. I could be wrong (it's a big world), but such is my experience in the C and Perl worlds. 2) Java also dictates a single class per file (basically). Other languages do not have that restriction which leads to different collections. A file in Python (a module) may have several classes, or just one, or none. A package in Python is a directory containing modules (and possibly other packages) as well as a __init__.py file. This means that you cannot have the Java case of two packages offering the same fully qualified resource, because the namespace is tied to the filesystem (note you can alter this when importing the packages). 3) Java uses "import" to create a shortcut to the namespace, a convenience for the programmer that has little to no bearing on the execution of the code. Namespace is determined by the classloader. Python uses "import" to declare how a namespace is used by the code itself, which can be very significant, (For example, Java can access any fully qualified package without an import statement. Python cannot access any package until it has been made available by import.) Hope that helps and is remotely accurate. I'm sure someone will correct me if I'm wrong. -- http://mail.python.org/mailman/listinfo/python-list