marekw2143 wrote:
Hi,

I have one class (A) that has defined method createVars. I would like
to add that method to class B
The code looks like this:


class A(object):
   def createVars(self):
      self.v1 = 1
      self.v2 = 3
      pass

class B(object):
   pass


I don't want to use inheritance (because class A has many methods
defined that class B doesn't need).
When I try the folloowing:


B.createVars = C.createVars

 you meant A.createVars

B().createVars()


then the following error occurs:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unbound method createVars() must be called with A instance
as first argument (got nothing instead)

In 3.1, your example works fine. The difference is that in 2.x, B.createVars is a method wrapperthat wraps the function, whereas in 3.1, it is the function itself. For 2.x, you need to extract the function from the wrapper. It is im_func or something like that. Use dir(B.createVars) to check for sure.

How can I solve this problem?

Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to