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