On 2009-04-07, Grant Edwards <inva...@invalid> wrote: > On 2009-04-07, Scott David Daniels <scott.dani...@acm.org> wrote: >> Grant Edwards wrote: >>> I realize that technically all methods are added to classes at >>> "run-time", but what I'm talking about is this: > ... >> >>> ClientForm.Control.__eq__ = controlEqual >>> ClientForm.Control.__ne__ = controlNotEqual > ... > >> Well, a more standard approach would be: >> class FancyControl(ClientForm.Control): >> def __eq__(self, other): >> return (self.type == other.type >> and self.name == other.name >> and self.value == other.value >> and self.disabled == other.disabled >> and self.readonly == self.readonly) >> >> def __ne__(self, other): >> return not self.__eq__(other)
I like that, except it doesn't work. Objects instantiated from sub-classes of ClientForm.Control break. I get errors like this: Traceback (most recent call last): File "./testit.py", line 141, in <module> f1 = getSocketForm(0) File "./testit.py", line 99, in getSocketForm return getForm("Socket",n) File "./testit.py", line 88, in getForm forms = ClientForm.ParseResponse(response,backwards_compat=False) File "/usr/lib/python2.5/site-packages/ClientForm.py", line 1057, in ParseResponse return _ParseFileEx(response, response.geturl(), *args, **kwds)[1:] File "/usr/lib/python2.5/site-packages/ClientForm.py", line 1128, in _ParseFileEx type, name, attrs, select_default=select_default, index=ii*10) File "/usr/lib/python2.5/site-packages/ClientForm.py", line 2843, in new_control control.add_to_form(self) File "/usr/lib/python2.5/site-packages/ClientForm.py", line 2016, in add_to_form Control.add_to_form(self, form) TypeError: unbound method add_to_form() must be called with FancyControl instance as first argument (got CheckboxControl instance instead) -- Grant Edwards grante Yow! I want a WESSON OIL at lease!! visi.com -- http://mail.python.org/mailman/listinfo/python-list