Mobile version of this pagepwdf - a mix of ls and pwd
Next:
What I like and dislike about Grok
Related blogs
Python new-style classes and the super() functionRelated by category
Mixing in new-style classes in Zope 2.7
new style, new-style, simpleitem, 2.7
9th of April 2008
Don't ask why I'm developing products for Zope 2.7 but I had to and I should have been more careful with these oldtimers.
I kept getting this error:
(notice the strange double space after the : colon)
This is different from the standard python TypeError when you get the parameters wrong which looks like this TypeError: __init__() takes exactly 2 arguments (1 given).
The line it complained this happened looked like this:
id = 'some_tool'
meta_type = 'some meta type'
def __init__(self, id='some_tool'):
self.id = id # <--- THIS WAS THE CULPRIT LINE APPARENTLY!!
I couldn't understand what the hell was wrong on that line! Clearly it wasn't a normal Python error. Here's the explaination: That OtherClass was a new-style class inheriting from object. It looked like this:
...
When I changed that to:
...
The whole thing started to work. Long lesson learnt, don't use new-style classes mixed in into Zope 2.7.







Save this page in del.icio.us