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 - [email protected] 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 - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
