From f02c4e8c28738789f5f28e70bdef3038f3caddd9 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 22 Jun 2022 10:59:18 -0500 Subject: [PATCH 01/10] initial class started --- fleet.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/fleet.py b/fleet.py index e69de29..2d6850b 100644 --- a/fleet.py +++ b/fleet.py @@ -0,0 +1,11 @@ +def main(): + class Fleet(): + vehicleid = {"7E19H2", "N9460G32581A3", "BN4681"} + def __init__(self, vtype, movspeed, travelmed, vehicleid): + self.vehicletype = vtype + self.movementspeed = movspeed + self.travelmedium = travelmed + self.uuid = vehicleid + + def displayAllFleetMembers(self,vehicleid): + print(vehicleid) \ No newline at end of file -- 2.47.3 From 0d7aff49de4187e4f6ea3fdb55342834a2de8b72 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 22 Jun 2022 11:11:51 -0500 Subject: [PATCH 02/10] added map to display vehicle values --- fleet.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fleet.py b/fleet.py index 2d6850b..39e52cd 100644 --- a/fleet.py +++ b/fleet.py @@ -1,11 +1,11 @@ def main(): class Fleet(): - vehicleid = {"7E19H2", "N9460G32581A3", "BN4681"} + vehicles = {"7E19H2", "N9460G32581A3", "BN4681"} def __init__(self, vtype, movspeed, travelmed, vehicleid): self.vehicletype = vtype self.movementspeed = movspeed self.travelmedium = travelmed self.uuid = vehicleid - def displayAllFleetMembers(self,vehicleid): - print(vehicleid) \ No newline at end of file + def displayAllFleetMembers(vehicles): + map(print(vehicles)) \ No newline at end of file -- 2.47.3 From 0519061cdead576bf1f47e7142442a135ebdebdc Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 22 Jun 2022 11:27:54 -0500 Subject: [PATCH 03/10] removed unneeded defmain --- fleet.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/fleet.py b/fleet.py index 39e52cd..06ccf0b 100644 --- a/fleet.py +++ b/fleet.py @@ -1,11 +1,10 @@ -def main(): - class Fleet(): - vehicles = {"7E19H2", "N9460G32581A3", "BN4681"} - def __init__(self, vtype, movspeed, travelmed, vehicleid): - self.vehicletype = vtype - self.movementspeed = movspeed - self.travelmedium = travelmed - self.uuid = vehicleid +class Fleet(): + vehicles = {"7E19H2", "N9460G32581A3", "BN4681"} + def __init__(self, vtype, movspeed, travelmed, vehicleid): + self.vehicletype = vtype + self.movementspeed = movspeed + self.travelmedium = travelmed + self.uuid = vehicleid - def displayAllFleetMembers(vehicles): - map(print(vehicles)) \ No newline at end of file + def displayAllFleetMembers(vehicles): + map(print(vehicles)) \ No newline at end of file -- 2.47.3 From 83b6f8cb80ad87ede688fbb99591e9e5870d110d Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Thu, 23 Jun 2022 13:50:39 -0500 Subject: [PATCH 04/10] saving basic class creation --- fleet.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/fleet.py b/fleet.py index 06ccf0b..b1f6aa1 100644 --- a/fleet.py +++ b/fleet.py @@ -1,10 +1,30 @@ class Fleet(): - vehicles = {"7E19H2", "N9460G32581A3", "BN4681"} + vehicles = ["7E19H2", "N9460G32581A3", "BN4681"] + def __init__(self, vtype, movspeed, travelmed, vehicleid): self.vehicletype = vtype self.movementspeed = movspeed self.travelmedium = travelmed self.uuid = vehicleid - def displayAllFleetMembers(vehicles): - map(print(vehicles)) \ No newline at end of file + + def displayAllFleetMembers(self): + for i in self.vehicles: + print(i) + + def displayVehicleType(self): + print(self.vehicletype) + + def addVehicles(self, newVehicleId): + self.vehicles.append(newVehicleId) + +vehicle1 = Fleet("car", 120, "ground", Fleet.vehicles[0]) + +vehicle1.displayAllFleetMembers() + +addVehicle = Fleet("hovercraft", 50, "ground/water", 0) + +addVehicle.addVehicles("Whispering Water") + +vehicle1.displayAllFleetMembers() + \ No newline at end of file -- 2.47.3 From 0c3c5ddc0116a3585470b26a31f72db82922fde6 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Fri, 24 Jun 2022 11:00:16 -0500 Subject: [PATCH 05/10] what did I do with this class? --- fleet.py | 2 +- vehicle.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 vehicle.py diff --git a/fleet.py b/fleet.py index b1f6aa1..b5e4543 100644 --- a/fleet.py +++ b/fleet.py @@ -24,7 +24,7 @@ vehicle1.displayAllFleetMembers() addVehicle = Fleet("hovercraft", 50, "ground/water", 0) -addVehicle.addVehicles("Whispering Water") +addVehicle.addVehicles(str(input("Enter vehicle identifier"))) vehicle1.displayAllFleetMembers() \ No newline at end of file diff --git a/vehicle.py b/vehicle.py new file mode 100644 index 0000000..3ec8de6 --- /dev/null +++ b/vehicle.py @@ -0,0 +1,4 @@ +class Vehicle(): + '''Defines the properties of ground vehicles''' + + def __init__(self): \ No newline at end of file -- 2.47.3 From 7c02be3061eb997b31b7f0d352388fb9d23fd7c2 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 29 Jun 2022 14:32:15 -0500 Subject: [PATCH 06/10] simplifying OOP example --- fleet.py | 24 +++++++++++++++++++++--- vehicle.py | 4 ---- 2 files changed, 21 insertions(+), 7 deletions(-) delete mode 100644 vehicle.py diff --git a/fleet.py b/fleet.py index b5e4543..4b67f14 100644 --- a/fleet.py +++ b/fleet.py @@ -1,3 +1,4 @@ +from abc import ABC, abstractmethod class Fleet(): vehicles = ["7E19H2", "N9460G32581A3", "BN4681"] @@ -24,7 +25,24 @@ vehicle1.displayAllFleetMembers() addVehicle = Fleet("hovercraft", 50, "ground/water", 0) -addVehicle.addVehicles(str(input("Enter vehicle identifier"))) - vehicle1.displayAllFleetMembers() - \ No newline at end of file + + +class Vehicle(ABC): + '''Defines the properties of vehicles''' + + # https://www.geeksforgeeks.org/inheritance-and-composition-in-python/ + @abstractmethod + def __init__(self, gpsPosition, velocity, weight, velocityType, weightType): + self.vehicleObject = Fleet() + self.gpsPosition = [0,0] + self.velocity = 0 + self.velocityType = "kph" + self.weightType = "kg" + self.weight = 0 + +class GroundVehicle:(ABC, Vehicle) +'''Doc string goes here''' + + # @abstractmethod + # def __init__(self): \ No newline at end of file diff --git a/vehicle.py b/vehicle.py deleted file mode 100644 index 3ec8de6..0000000 --- a/vehicle.py +++ /dev/null @@ -1,4 +0,0 @@ -class Vehicle(): - '''Defines the properties of ground vehicles''' - - def __init__(self): \ No newline at end of file -- 2.47.3 From b377951c781964c2199be876f14adc968f92d88d Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 29 Jun 2022 15:27:51 -0500 Subject: [PATCH 07/10] saving after resolving methods order problem --- fleet.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fleet.py b/fleet.py index 4b67f14..3d1259e 100644 --- a/fleet.py +++ b/fleet.py @@ -28,6 +28,14 @@ addVehicle = Fleet("hovercraft", 50, "ground/water", 0) vehicle1.displayAllFleetMembers() +class GroundVehicle(ABC, Vehicle): + + + @abstractmethod + def __init__(self, volume): + # default value set to true. Many ground vehicles will have trailers or train cars. Modified as needed + self.isModular = True + class Vehicle(ABC): '''Defines the properties of vehicles''' @@ -41,8 +49,3 @@ class Vehicle(ABC): self.weightType = "kg" self.weight = 0 -class GroundVehicle:(ABC, Vehicle) -'''Doc string goes here''' - - # @abstractmethod - # def __init__(self): \ No newline at end of file -- 2.47.3 From b222fc08938c5f48c1048335586fb5fd7f6b13b5 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Wed, 29 Jun 2022 16:03:36 -0500 Subject: [PATCH 08/10] got both classes working --- fleet.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fleet.py b/fleet.py index 3d1259e..c900218 100644 --- a/fleet.py +++ b/fleet.py @@ -28,13 +28,7 @@ addVehicle = Fleet("hovercraft", 50, "ground/water", 0) vehicle1.displayAllFleetMembers() -class GroundVehicle(ABC, Vehicle): - - @abstractmethod - def __init__(self, volume): - # default value set to true. Many ground vehicles will have trailers or train cars. Modified as needed - self.isModular = True class Vehicle(ABC): '''Defines the properties of vehicles''' @@ -49,3 +43,11 @@ class Vehicle(ABC): self.weightType = "kg" self.weight = 0 +class GroundVehicle(Vehicle): + + + @abstractmethod + def __init__(self, volume): + # default value set to true. Many ground vehicles will have trailers or train cars. Modified as needed + self.isModular = True + -- 2.47.3 From c2a19262b71b8da74a3ca656572f8926cbab886b Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Thu, 30 Jun 2022 10:53:01 -0500 Subject: [PATCH 09/10] saving inheritance and interface practice --- fleet.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/fleet.py b/fleet.py index c900218..796fff5 100644 --- a/fleet.py +++ b/fleet.py @@ -19,13 +19,13 @@ class Fleet(): def addVehicles(self, newVehicleId): self.vehicles.append(newVehicleId) -vehicle1 = Fleet("car", 120, "ground", Fleet.vehicles[0]) +# vehicle1 = Fleet("car", 120, "ground", Fleet.vehicles[0]) -vehicle1.displayAllFleetMembers() +# vehicle1.displayAllFleetMembers() -addVehicle = Fleet("hovercraft", 50, "ground/water", 0) +# addVehicle = Fleet("hovercraft", 50, "ground/water", 0) -vehicle1.displayAllFleetMembers() +# vehicle1.displayAllFleetMembers() @@ -43,11 +43,29 @@ class Vehicle(ABC): self.weightType = "kg" self.weight = 0 -class GroundVehicle(Vehicle): +class GroundVehicleInterface(ABC): + '''Resource on Python interfaces. This is duck typed. https://realpython.com/python-interface/''' + @abstractmethod + def travel(self): + Vehicle.velocity = self.moveGroundVehicle + +class GroundVehicle(Vehicle, GroundVehicleInterface): @abstractmethod def __init__(self, volume): # default value set to true. Many ground vehicles will have trailers or train cars. Modified as needed self.isModular = True + self.moveGroundVehicle = float(input()) + +class Train(GroundVehicle): + def __init__(self, noOfCarsAttached, locomotiveCount): + self.noOfCarsAttached = 1 + self.locomotiveCount = 1 + def displayCarCount(self): + print(self.noOfCarsAttached) + +Train1 = Train(20, 2) + +Train.displayCarCount() \ No newline at end of file -- 2.47.3 From 7c5cd3748ab690cd3b3c41a56082a0c0e0225b95 Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Thu, 30 Jun 2022 13:41:47 -0500 Subject: [PATCH 10/10] have inheritance and interface example complete --- fleet.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fleet.py b/fleet.py index 796fff5..23393c4 100644 --- a/fleet.py +++ b/fleet.py @@ -66,6 +66,9 @@ class Train(GroundVehicle): def displayCarCount(self): print(self.noOfCarsAttached) + def travel(self): + print("Speed 60mph, Direction E") + Train1 = Train(20, 2) -Train.displayCarCount() \ No newline at end of file +Train1.displayCarCount() \ No newline at end of file -- 2.47.3