簡體   English   中英

檢查對象數組中的值是否

[英]Check if value in an array of objects

我最近編寫了一個代碼,該代碼將所有屬性分別存儲在不同的 arrays 中,例如

order_id = []
order_name = []
order_products = []
order_total = []

當通過 API 請求導入新訂單時,我會檢查我是否已經擁有該訂單

if new_order_id in order_id:
    # do new order stuff

現在我想更改代碼,以便訂單是一個 class,它具有 id、name、products 和 total 作為屬性,並且所有訂單都存儲在一個名為 orders 的數組中。 有沒有一種簡單的方法來檢查新訂單 ID 是否與訂單數組中任何訂單對象的 ID 匹配?

class oder():
    def __init__(self, id, name, products, total):
        self.id = id
        self.name = name
        self.products = products
        self.total = total
    
oders=[]# Class objects are here

if new.id in [oder.id for oder in oders]:
    #Place an Order

測試容器中是否存在 object 的一種方法是通過__eq__魔術方法為 object 賦予“值”。 例如:

class Order:
    def __init__(self, id):
        self.order_id = id
    def __eq__(self, other):
        return self.order_id == other

order_list = [Order('123'), Order('456')]

然后您可以測試訂單號:

>>> '123' in order_list
True
>>> '345' in order_list
False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM