Python类,如何跳过错误的输入并继续下一个输入

内华达州

我已经创建了这个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
修剪

您的问题描述不准确:该if语句无法“跳至下一个条目”,因为该下一个条目是由调用程序控制的,而不是由调用程序控制的__init__所有你可以在初始化要做的就是控制设置了这个的一个对象。

根本问题是您希望程序继续运行,但是您使用了专门中止程序的语言工具很简单,您需要决定要选择哪一个。假设您希望尽可能顺利地完成当前的初始化,请尝试以下操作:对照有效选择列表检查给定选择。如果不在该列表中,请发出一条简单消息并尽最大可能完成初始化。

def __init__(self, Id, price, inventory, condition):
    valid_condition = ("new", "used", "refurbished")
    self.condition = condition.lower()
    if self.condition not in valid_condition:
        print('condition can only be new or used or refurbished. ',
              'Setting to "unknown"')
        self.condition = "unknown"

    self.Id = Id
    self.price = price
    self.inventory = inventory

那是你想要的效果吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章