Inheritance problem ?

db duikboot at localhost.localdomain
Wed Aug 24 07:40:48 EDT 2005


On Wed, 24 Aug 2005 03:34:36 -0700, tooper wrote:

> Hello all,
> 
> I'm trying to implement a common behavior for some object that can be
> read from a DB or (when out of network) from an XML extract of this DB.
> I've then wrote 2 classes, one reading from XML & the other from the
> DB, both inheritating from a common one where I want to implement
> several common methods.
> Doing this, I've come to some behaviour I can't explain to myself,
> which I've reproduced in the example bellow :
> 
> -----
> 
> class myfather:
> 	def __repr__(self):
> 		return "\t a="+self.a+"\n\t b="+self.b
> 
> class mychilda(myfather):
> 	def __init__(self,a):
> 		self.a= a
> 	def __getattr__(self,name):
> 		return "Undefined for mychilda"
> 
> class mychildb(myfather):
> 	def __init__(self,b):
> 		self.b= b
> 	def __getattr__(self,name):
> 		return "Undefined for mychildb"
> 
> a= mychilda("a")
> b= mychildb("b")
> 
> print "a:\n"+str(a)
> print "b:\n"+str(b)
> 
> -----
> 
> I was expecting to get :
> 
> a:
>    a= a
>    b= Undefined for mychilda
> b:
>    a= Undefined for mychildb
>    b= b
> 
> but I get the following error :
> 
> File "/home/thierry/mytest.py", line 20, in ?
>     print "a:\n"+str(a)
> TypeError: 'str' object is not callable
> 
> Could someone explain me what I missed ?
> 
> Thanks in advance !

try new style classes.
class myfather(object):

see http://users.rcn.com/python/download/Descriptor.htm

HTH Arjen






More information about the Python-list mailing list