# stock3.py

class Stock(object):
    def __init__(self,name,shares,price):
        self.name = name
        self.shares = shares
        self.price  = price
    def value(self):
        return self.shares * self.price
    value = property(value)
    def sell(self,nshares):
        self.shares -= nshares        
    def __repr__(self):
        return "Stock('%s',%d,%0.2f)" % \
            (self.name,self.shares,self.price)

# example use
if __name__ == '__main__':
    s = Stock('GOOG',100,490.10)
    print s.name
    print s.shares
    print s.price
    print s.value        #  Notice uniform interface here
