T
tooper
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 !
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 !