Я создал этот класс Python для ввода некоторых продуктов, которые могут быть либо новыми, либо использоваться, либо отремонтированы (нечувствительность к регистру достигается функцией .lower()
).Любая другая запись параметра условия должна выдавать ошибку (ValueError), и я хочу, чтобы код перешел к следующей строке.
Random_Product_1
- первый и совершенно новый объект.С этим проблем нет.Я сделал преднамеренную ошибку с условием следующего объекта Random_Product_2
.Это должно напечатать ValueError
.Это делает, но и дополнительные вещи ошибки.Это приводит к тому, что код останавливается на своем пути.Следующая строка кода, создающая объект (введены правильные значения условий), просто не запускается.
В основном я пытаюсь заставить код пропустить ошибочные записи, такие как Random_Product_2
, до следующей строки кода.Вот мой основной код, на котором я планирую создавать другие вещи, как только решу эту проблему.
class Product:
def __init__(self, Id, price, inventory, condition):
self.condition = condition.lower()
if self.condition != "new" and self.condition != "used" and self.condition != "refurbished":
raise ValueError('condition can only be new or used or refurbished')
self.Id = Id
self.price = price
self.inventory = inventory
Random_Product_1 = Product('What_is_this', 50, 81, "Used") # defined perfectly
Random_Product_2 = Product('What_is_this', 50, 85, "Useed") # not defined at all, code doesn't go to next line
Random_Product_3 = Product('What_is_this', 500, 805, "Used") # This is not run