Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3a738a2

Browse files
committed
Complete Chapter 5 exercises
1 parent 8ed751d commit 3a738a2

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

Work/pcost.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
def portfolio_cost(filename):
99
"""Calculate protfolio cost."""
1010
rows = report.read_portfolio(filename)
11-
return sum([row.shares * row.price for row in rows])
11+
return sum([row.cost for row in rows])
1212

1313

1414
def main(args):

Work/stock.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33

44
class Stock:
5+
__slots__ = ("name", "_shares", "price")
6+
57
def __init__(self, name, shares, price):
68
self.name = name
79
self.shares = shares
@@ -10,6 +12,17 @@ def __init__(self, name, shares, price):
1012
def __repr__(self):
1113
return f"Stock('{self.name}', {self.shares}, {self.price})"
1214

15+
@property
16+
def shares(self):
17+
return self._shares
18+
19+
@shares.setter
20+
def shares(self, value):
21+
if not isinstance(value, int):
22+
raise TypeError("Expected int")
23+
self._shares = value
24+
25+
@property
1326
def cost(self):
1427
return self.shares * self.price
1528

0 commit comments

Comments
 (0)