a "generic" problem
news at manuelmgarcia.com
Thu Feb 13 00:34:54 CET 2003
Please forgive, I didn't have time to read all the details in your
post, but I remember having a similar problem, so maybe this will
(also I like to run code before I post, and in this case I haven't)
On Wed, 12 Feb 2003 15:46:06 -0500, "Sean Ross"
<frobozz_electric at hotmail.com> wrote:
> # create new instances c1, c2 of whichever class p1, p2 belong to
If you can get away with just copying p1 & p1, then:
c1 = copy.copy(p1)
c2 = copy.copy(p2)
Every instance has the attribute __class__. Call this to run the
c1 = p1.__class__()
c2 = p2.__class__()
>"How do I implement this method, so that I do not need to
>override it for each sublass?"
instead of using 'staticmethod', use 'classmethod'
'staticmethod' works like this:
print 'static %r' % (x+y+z,)
meth1 = staticmethod(meth1)
'classmethod' works like this:
def meth2(cls, x,y,z):
print '%s %r' % (cls.__name__, x+y+z)
meth2 = classmethod(meth2)
My example doesn't make sense, but I hope you see the syntax
structure. Via the variable 'cls', you have access to the class
involved with method f. Both of these work, for staticmethod and
a = fake()
What I am trying to say is that you don't even have to have an
instance to use a staticmethod or a classmethod, you can just run the
method from the class directly.
> "Is there a way to overide the value of a class variable of the super
> inside the inheriting class?"
Is this what you mean?
attr1 = 17
attr2 = 19
class subfake1(fake3): pass
attr2 = 23
No special steps to override! I may be misunderstanding you.
Hope this helps!
More information about the Python-list