Python class 参数重复

Python class argument repetition

我正在编写一些 Python 代码来使用列表来存储订单数据。有什么办法可以避免重复使用相同的参数?

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

您可以看到我有几个参数实例“order_number_legacy、平台、值、user_id”。添加完所有 Order class 变量后,代码将重复更多参数。我原以为 Python 会有办法“整理”它...

您可以将 dataclass 用于 Order。它会自动处理 __init__ 函数:

from dataclasses import dataclass

@dataclass
class Order:
    order_number_legacy: int
    platform: str
    # ...