Python Forum

Full Version: something wrong: class
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
the code:
from __future__ import print_function
total = 1
class Classy:
    total = 0
    def __init__(self):
        return
    def add(self,a):
        p = self.total
        self.total += a
        return p
if __name__ == '__main__':
    c = Classy
    print('c =',repr(c))
    print(dir(c))
    for n in range(3):
        x = c.add(8)
        print('x =',repr(x))
i ran it under python3:
Output:
lt1/forums /home/forums 48> py3 min1.py c = <class '__main__.Classy'> ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add', 'total'] Traceback (most recent call last):   File "min1.py", line 16, in <module>     x = c.add(8) TypeError: add() missing 1 required positional argument: 'a' lt1/forums /home/forums 49>
what did i miss in learning about classes?
The constructor for c must be:
c = Classy()
DO'H!!! Wall   and i know that, too.  i need more class coding experience to recognize such mistakes.  now on to trying to figure out my other coding goof.