I am writing a bit of Python code to use a list to store order data. Is there any way to avoid having to repeatedly use the same arguments?
import datetime, pickle
class Order:
def __init__(self, order_number_legacy, platform, value, user_id):
self.order_number_legacy = order_number_legacy
self.platform = platform
self.value = value
self.user_id = user_id
def match(self, order_number_legacy):
return filter in self.order_number_legacy
def print(self):
return f"{self.order_number_legacy}, {self.platform}, {self.value}, {self.user_id}\n"
class Orders:
def __init__(self):
self.orders = []
def newOrder(self, order_number_legacy, platform, value, user_id):
self.orders.append(Order(order_number_legacy, platform, value, user_id))
def save(self):
with open("orders.data", "wb") as fh:
pickle.dump(self.orders, fh)
def load(self):
with open("orders.data", "rb") as fh:
self.orders = pickle.load(fh)
def print(self):
text = ""
for order in self.orders:
text += order.print()
return text
You can see that I have several instances of the arguments "order_number_legacy, platform, value, user_id". Once I have added all of the Order class variables, the code will have lots more arguments repeated. I would have thought Python would have a way to "tidy" this up...