Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #32037

Re: classes

From Mark Lawrence <breamoreboy@yahoo.co.uk>
Subject Re: classes
Date 2012-10-24 14:09 +0100
References <CAFqGZRE1LbAgoOCAKuynYBw4Rj6++p+misZrsXmv1nwivHuNwg@mail.gmail.com> <k68ngh$u49$1@ger.gmane.org> <CAFqGZRHRVBvvhBdcXUSb-h=fCFRVYS-SBGXRroRe=EMxRkjYaw@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.2761.1351084020.27098.python-list@python.org> (permalink)

Show all headers | View raw


On 24/10/2012 13:48, inshu chauhan wrote:
> I was just trying out a programme for learning classes in python
>>>
>>> The prog below is showing an error which it should not show :
>>>
>>> class Bag:
>>>       def __init__(self, x):
>>>           self.data = []
>>>
>>
>> You do nothing with x here. Right so x shouldnot be in the argument.
>>
> Fine
>
> *class Bag:
>>       def __init__(self):
>>           self.data = []*
>>
>>
>>>       def add(self, x):
>>>           self.data.append(x)
>>>       def addtwice(self, x):
>>>            self.add(x)
>>>            self.add(x)

No return given so it will default to returning None, but...

>>> y = Bag(4)
>>>
>>
>> Create y with an argument of 4 'which is discarded in the initialiser.'
>> means ??
>>
>>
>>   print " Adding twice of %4.2f gives " % (y.addtwice())

...you seem to be expecting addtwice to be returning a Python float. 
Only you can tell us why as I've not yet gone to first year mind reading 
classes :)

>>>
>>
>> There's no argument passed to addtwice here. ' why am I not passing y to
>> addtwice here ??

You are passing y, it's called self.  Why aren't you passing x?

>>
>>
>>
>>>
>>> Error is :
>>>
>>> Traceback (most recent call last):
>>>     File "Z:\learning Python\learn5.py", line 35, in <module>
>>>       print " Adding twice of %4.2f gives " % (y.addtwice())
>>> TypeError: addtwice() takes exactly 2 arguments (1 given)
>>>
>>
>> Exactly what I'd expect to happen.  What did you expect? I am learning
>> ....
>>
>>
>>
>>> why the prog is having this error with self nd x as arguments ???
>>>
>>
>> What x argument?  Clearly wrong as I've pointed out above. How can i
>> correct it ??

Put whatever it is you want appended to self.data in the call to 
y.addtwice.  And/or get addtwice to return the correct data type. 
And/or correct anything that I've missed like I did the first time around.

>>
>>
>> --
>> Cheers.
>>
>> Mark Lawrence.
>>
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>>
>

-- 
Cheers.

Mark Lawrence.

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: classes Mark Lawrence <breamoreboy@yahoo.co.uk> - 2012-10-24 14:09 +0100

csiph-web