Skip to content

Commit 6a24ff2

Browse files
author
Arjan Egges
committed
Cleanup and minor improvements to instance initialization.
1 parent 75bcb68 commit 6a24ff2

18 files changed

+92
-74
lines changed

1 - coupling and cohesion/coupling-cohesion-after.py

+4-13
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
import random
33

44
class VehicleInfo:
5-
brand: str
6-
electric: bool
7-
catalogue_price: int
8-
5+
96
def __init__(self, brand, electric, catalogue_price):
107
self.brand = brand
118
self.electric = electric
@@ -22,9 +19,6 @@ def print(self):
2219
print(f"Payable tax: {self.compute_tax()}")
2320

2421
class Vehicle:
25-
id: str
26-
license_plate: str
27-
info: VehicleInfo
2822

2923
def __init__(self, id, license_plate, info):
3024
self.id = id
@@ -39,18 +33,15 @@ def print(self):
3933

4034
class VehicleRegistry:
4135

42-
vehicle_info = { }
43-
44-
def add_vehicle_info(self, brand, electric, catalogue_price):
45-
self.vehicle_info[brand] = VehicleInfo(brand, electric, catalogue_price)
46-
47-
4836
def __init__(self):
37+
self.vehicle_info = { }
4938
self.add_vehicle_info("Tesla Model 3", True, 60000)
5039
self.add_vehicle_info("Volkswagen ID3", True, 35000)
5140
self.add_vehicle_info("BMW 5", False, 45000)
5241
self.add_vehicle_info("Tesla Model Y", True, 75000)
5342

43+
def add_vehicle_info(self, brand, electric, catalogue_price):
44+
self.vehicle_info[brand] = VehicleInfo(brand, electric, catalogue_price)
5445

5546
def generate_vehicle_id(self, length):
5647
return ''.join(random.choices(string.ascii_uppercase, k=length))

5 - unit testing/vehicle_info_after.py

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
class VehicleInfo:
2-
brand: str
3-
electric: bool
4-
catalogue_price: int
52

63
def __init__(self, brand, electric, catalogue_price):
74
self.brand = brand

5 - unit testing/vehicle_info_before.py

-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
class VehicleInfo:
2-
brand: str
3-
electric: bool
4-
catalogue_price: int
52

63
def __init__(self, brand, electric, catalogue_price):
74
self.brand = brand

6 - template method & bridge/trading-after.py

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from typing import List
33

44
class TradingBot(ABC):
5+
56
def connect(self):
67
print(f"Connecting to Crypto exchange...")
78

@@ -29,6 +30,7 @@ def should_sell(self, prices: List[float]) -> bool:
2930
pass
3031

3132
class AverageTrader(TradingBot):
33+
3234
def list_average(self, l: List[float]) -> float:
3335
return sum(l) / len(l)
3436

6 - template method & bridge/trading-before.py

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
class Application:
44

5-
trading_strategy: str
6-
75
def __init__(self, trading_strategy = "average"):
86
self.trading_strategy = trading_strategy
97

6 - template method & bridge/with-bridge.py

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ def get_market_data(self, coin: str) -> List[float]:
2525
return [10, 12, 18, 20]
2626

2727

28-
2928
class TradingBot(ABC):
3029

3130
def __init__(self, exchange: Exchange):

8 - mvc/mvc-after.py

+10-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ class Model:
66
def __init__(self):
77
self.uuid = []
88

9+
def append(self, item):
10+
self.uuid.append(item)
11+
12+
def clear(self):
13+
self.uuid = []
14+
915
class Controller:
1016
def __init__(self, model, view):
1117
self.model = model
@@ -17,12 +23,13 @@ def start(self):
1723

1824
def handle_click_generate_uuid(self):
1925
# generate a uuid and add it to the list
20-
self.model.uuid.append(uuid.uuid4())
21-
self.view.append_to_list(self.model.uuid[-1])
26+
newid = uuid.uuid4()
27+
self.model.append(newid)
28+
self.view.append_to_list(newid)
2229

2330
def handle_click_clear_list(self):
2431
# clear the uuid list in the model and the view
25-
self.model.uuid = []
32+
self.model.clear()
2633
self.view.clear_list()
2734

2835
class View(ABC):

9 - solid/dependency-inversion-after.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)
@@ -25,7 +27,8 @@ def is_authorized(self) -> bool:
2527

2628
class Authorizer_SMS(Authorizer):
2729

28-
authorized = False
30+
def __init__(self):
31+
self.authorized = False
2932

3033
def verify_code(self, code):
3134
print(f"Verifying SMS code {code}")
@@ -36,7 +39,8 @@ def is_authorized(self) -> bool:
3639

3740
class Authorizer_Google(Authorizer):
3841

39-
authorized = False
42+
def __init__(self):
43+
self.authorized = False
4044

4145
def verify_code(self, code):
4246
print(f"Verifying Google auth code {code}")
@@ -47,7 +51,8 @@ def is_authorized(self) -> bool:
4751

4852
class Authorizer_Robot(Authorizer):
4953

50-
authorized = False
54+
def __init__(self):
55+
self.authorized = False
5156

5257
def not_a_robot(self):
5358
self.authorized = True

9 - solid/dependency-inversion-before.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)
@@ -19,7 +21,8 @@ def total_price(self):
1921

2022
class SMSAuthorizer:
2123

22-
authorized = False
24+
def __init__(self):
25+
self.authorized = False
2326

2427
def verify_code(self, code):
2528
print(f"Verifying SMS code {code}")

9 - solid/interface-segregation-after-comp.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)
@@ -19,7 +21,8 @@ def total_price(self):
1921

2022
class SMSAuthorizer:
2123

22-
authorized = False
24+
def __init__(self):
25+
self.authorized = False
2326

2427
def verify_code(self, code):
2528
print(f"Verifying SMS code {code}")

9 - solid/interface-segregation-after.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)

9 - solid/interface-segregation-before.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)

9 - solid/liskov-substitution-after.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)

9 - solid/liskov-substitution-before.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)

9 - solid/open-closed-after.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from abc import ABC, abstractmethod
22

33
class Order:
4-
items = []
5-
quantities = []
6-
prices = []
7-
status = "open"
4+
5+
def __init__(self):
6+
self.items = []
7+
self.quantities = []
8+
self.prices = []
9+
self.status = "open"
810

911
def add_item(self, name, quantity, price):
1012
self.items.append(name)

9 - solid/open-closed-before.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
class Order:
2-
items = []
3-
quantities = []
4-
prices = []
5-
status = "open"
2+
3+
def __init__(self):
4+
self.items = []
5+
self.quantities = []
6+
self.prices = []
7+
self.status = "open"
68

79
def add_item(self, name, quantity, price):
810
self.items.append(name)

9 - solid/single-responsibility-after.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
class Order:
2-
items = []
3-
quantities = []
4-
prices = []
5-
status = "open"
2+
3+
def __init__(self):
4+
self.items = []
5+
self.quantities = []
6+
self.prices = []
7+
self.status = "open"
68

79
def add_item(self, name, quantity, price):
810
self.items.append(name)

9 - solid/single-responsibility-before.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
class Order:
2-
items = []
3-
quantities = []
4-
prices = []
5-
status = "open"
2+
3+
def __init__(self):
4+
self.items = []
5+
self.quantities = []
6+
self.prices = []
7+
self.status = "open"
68

79
def add_item(self, name, quantity, price):
810
self.items.append(name)

0 commit comments

Comments
 (0)