[英]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.