MyClass = MyClass(abc)
The above line is the same as doing this:
def x():
   print 'Hello'
   return 'Hello'
x() # outputs Hello
x = x() # Also ouputs 'Hello' (since x() is called)
x() # Error, since x is now 'Hello' (a string), and you are trying to call it.
In python the name of a variable is just a pointer to a place in memory. You can freely assign it to another location (object) by pointing it to something else. In fact, most things you define work that way (like methods and classes). They are just names.
Its even stranger if your method doesn't have a return value (like most class __init__ methods). In that case, the left hand side is None, and you'll get TypeError: 'NoneType' object is not callable. Like this:
>>> def x():
...   print 'Hello'
...
>>> x()
Hello
>>> x = x()
Hello
>>> x()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable
>>> type(x)
<type 'NoneType'>