On 2011/09/09 12:10 PM, Stu Rocksan wrote:
I have a very basic question that I am sure has a simple answer.  I
would be very appreciative of anyone that would set me straight.

Python 2.7.2

I am simply trying to pass arguments.  Based on the documentation that
I've read so far _init_() is called upon instance creation and the
arguments are those passed to the class constructor expression.  That
all makes sense to me but the problem is when I try to actually pass
the argument.  I get an TypeError that states "This constructor takes
no arguments."

Even using code direct from the tutorials included in the
documentation gives me the same error.  I doubt that there would be
bad code coming direct from the official website...right?  So the
problem must be me.

Example:

class Complex:
               def _init_(self, realpart, imagpart)
                     self.r = realpart
                     self.i = imagpart

x = Complex(3.0, -4.5)
x.r, x.i
# theoretical output
(3.0, -4.5)

This is taken direct from the tutorial included in the documentation
dated September 8, 2011.  If you try to run this you will get a
TypeError: this constructor takes no arguments.

It even says in the explanation before this code:
Of course, the __init__() method may have arguments for greater
flexibility. In that case, arguments given to the class instantiation
operator are passed on to __init__().

I've tried similar code from other beginner Python books and I get the
exact same result.

I am sure that I am missing something simple.  Thanks in advance
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor



__init__() has 2 underscores pre- and post-fixed. Your example will break because of that, and also you're missing a colon at the end of your `def` line.

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> class Complex:
...   def __init__(self, realpart, imagpart):
...     self.r = realpart
...     self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)
>>> class Complex2:
...   def _init_(self, realpart, imagpart):
...     self.r = realpart
...     self.i = imagpart
...
>>> x= Complex2(3.0, -4.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: this constructor takes no arguments

--

Christian Witts
Python Developer

//
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to