Esempio n. 1
0
class Stock:
    name = String('name')
    shares = Integer('shares')
    price = Float('price')

    def __init__(self, name, shares, price):
        self.name = name
        self.shares = shares
        self.price = price

    # @property
    # def shares(self):
    #     return self._shares

    # @shares.setter
    # def shares(self, value):
    #     if not isinstance(value, int):
    #         raise TypeError('expected an integer')
    #     self._shares = value

    def cost(self):
        return self.shares * self.price

    def sell(self, n):
        if self.shares - n >= 0:
            self.shares -= n
        return self.shares

    def __repr__(self):
        return f'Stock(\'{self.name}\', {self.shares}, {self.price})'
Esempio n. 2
0
class Stock:
    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
Esempio n. 3
0
class Stock:
    name = String('name')
    shares = Int('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}, {self.shares}, {self.price})'

    # @property
    # def shares(self):
    #     return self._shares

    # @shares.setter
    # def shares(self, value):
    #     if not isinstance(value, int):
    #         raise TypeError(f"Expected int, not {type(value).__name__}")
    #     self._shares = value

    @property
    def cost(self):
        return self.shares * self.price

    def sell(self, value):
        self.shares -= value
Esempio n. 4
0
class Stock:
    name = String('name')
    shares = Integer('shares')
    price = Float('price')

    #__slots__ = ('name','_shares','price')
    def __init__(self,name,shares,price):
        self.name = name
        self.shares = shares
        self.price = price

    def __repr__(self) -> str:
        return f'Stock({self.name!r},{self.shares!r},{self.price!r})'

    @property
    def shares(self):
        return self._shares

    @shares.setter
    def shares(self,value):
        if not isinstance(value,int):
            raise TypeError('Expected int')
        self._shares = value

    @property
    def cost(self):
        return self.shares * self.price

    def sell(self,numshares):
        self.shares -= numshares
Esempio n. 5
0
class Stock(object):
    name = String('name')
    shares = Integer('shares')
    price = Float('price')

    def __init__(self, name, shares, price):
        self.name = name
        self.shares = shares
        self.price = price

    @property
    def cost(self):
        return self.shares * self.price

    def sell(self, sold):
        self.shares -= sold

    def __repr__(self):
        return f'Stock({self.name!r}, {self.shares!r}, {self.price!r})'
Esempio n. 6
0
class Stock:
    __slots__ = ('_name', '_price', '_shares')

    name = String('name')
    shares = Int('shares')
    price = Float('price')

    def __init__(self, name, shares, price):
        self.name = name
        self.price = price
        self.shares = shares
    
    @property
    def cost(self):
        return self.shares * self.price

    def sell(self, shares):
        if self.shares < shares:
            self.shares = 0
        else:
            self.shares -= shares

    def __repr__(self):
        return f"Stock('{self.name}', {self.shares}, {self.price})"