multiple inheritance and __slots__
Eric Texier
erict at millfilm.co.uk
Mon Jul 15 10:29:26 EDT 2002
In short, I am getting the error message:
TypeError: multiple bases have instance lay-out conflict
when I try to declare a subclass of 2 classes with __slots__
Is there an easy way around. (In this case, I really would like
to keep the multiple inheritance.)
Following is an example:
#########################################
class aBasicTask(object):
__slots__ = [ "_aBasicTask__Name",
"_aBasicTask__OuputType"]
def __init__(self):
super(aBasicTask,self).__init__()
self.__Name = "unknown"
self.__OuputType = "NoType"
def setName(self,name):
self.__Name = name
def getName(self):
return self.__Name
name = property(getName,setName,doc = "task name")
###########################################
class OutputFile(object):
''' getFile from any file
'''
__slots__ = ["_OutputFile__fileName"]
def TypeOutName():
return "OutputFile"
TypeOutName = staticmethod(TypeOutName)
def __init__(self):
super(OutputFile,self).__init__()
self.__fileName = ""
def getFile(self):
return self.__fileName
class foo(aBasicTask,OutputFile): pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: multiple bases have instance lay-out conflict
More information about the Python-list
mailing list