34 lines
793 B
Python
34 lines
793 B
Python
# stock.py
|
|
|
|
from .typedproperty import String, Integer, Float
|
|
|
|
class Stock:
|
|
'''
|
|
An instance of a stock holding consisting of name, shares, and price.
|
|
'''
|
|
if __debug__:
|
|
name = String('name')
|
|
shares = Integer('shares')
|
|
price = Float('price')
|
|
|
|
def __init__(self,name, shares, price):
|
|
self.name = name
|
|
self.shares = shares
|
|
self.price = price
|
|
|
|
def __repr__(self):
|
|
return f'Stock({self.name!r}, {self.shares!r}, {self.price!r})'
|
|
|
|
@property
|
|
def cost(self):
|
|
'''
|
|
Return the cost as shares*price
|
|
'''
|
|
return self.shares * self.price
|
|
|
|
def sell(self, nshares):
|
|
'''
|
|
Sell a number of shares and return the remaining number.
|
|
'''
|
|
self.shares -= nshares
|