Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #53305

sax.handler.Contenthandler.__init__

From Neil Cerutti <neilc@norwich.edu>
Newsgroups comp.lang.python
Subject sax.handler.Contenthandler.__init__
Date 2013-08-30 17:20 +0000
Organization Norwich University
Message-ID <b8c2igFiupsU1@mid.individual.net> (permalink)

Show all headers | View raw


This code is from The Python Cookbook, 2nd edition, 12.2 Counting
Tags in a Document:

from xml.sax.handler import ContentHandler
import xml.sax
class countHandler(ContentHandler):
    def __init__(self):
        self.tags={}
    def startElement(self, name, attr):
        self.tags[name] = 1 + self.tags.get(name, 0)

Isn't overriding __init__ a risky thing to do? The docs don't
mention it as a method I should override, and also don't define
what's in there or if I'd need to call the base class __init__.
Moreover, startDocument is provided for parser setup.

As it happens, ContentHandler.__init__ isn't empty, so the above
code could fail if the parser isn't prepared for _locator to be
undefined.

Is the above code is an acceptable idiom?

-- 
Neil Cerutti

Back to comp.lang.python | Previous | NextNext in thread | Find similar | Unroll thread


Thread

sax.handler.Contenthandler.__init__ Neil Cerutti <neilc@norwich.edu> - 2013-08-30 17:20 +0000
  RE: sax.handler.Contenthandler.__init__ "Prasad, Ramit" <ramit.prasad@jpmorgan.com.dmarc.invalid> - 2013-08-30 17:35 +0000

csiph-web