On 25/07/12 16:11, Lipska TheCat wrote:

from xml.dom.minidom import getDOMImplementation

I'd probably start by saying that I suspect elemtTree will be easier to use than minidom, but if you must....


class NpDOMDocumentFactory:
     # make these private "by convention"
     __DOMImplementation = getDOMImplementation()
     __defaultNamespaceUri = "http://nuldomain.com/";
     __defaultQualifiedName = "root"
     __defaultDoctype = __DOMImplementation.createDocumentType("HTML",

Its not C++ or Java, Python doesn't usually need "private" definitions...


     def getDOMDocument(self):
     def getDOMDocument(self, namespaceUri=__defaultNamespaceUri):
     def getDOMDocument(self, namespaceUri=__defaultNamespaceUri, 
qualifiedName=__defaultQualifiedName):
>      def getDOMDocument(self,
                          namespaceUri=__defaultNamespaceUri,
                          qualifiedName=__defaultQualifiedName,
                          docType=__defaultDoctype):

These definitions all define the same object. There is no function overloading in Python. You can often fake it with suitable use of default arguments. This looks likely here.

If you can't use defaulted values you can write helper functions and call the main method with a tuple of arguments and switch on the length of tuple.

Or you can use the argument expansion mechanism to pass unlimited numbers of arguments, or a set of keyword arguments. Lots of options.

...I just need to understand why the 3 arg method is being called
> instead of the 0 arg method as expected

Because in Python the function name alone is the identifier and so the last version defined is the version used.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to