检查危险品程序:生成货物类、机器类,货物类有属性name,机器类有检测的check方法,若货物名称是炸弹、毒药、刀具,则抛出异常提示。
时间: 2024-05-06 11:19:12 浏览: 111
危险品的分类和标志
可以使用面向对象编程的思想来实现这个检查危险品的程序,具体代码如下:
```python
class Goods:
def __init__(self, name):
self.name = name
class Machine:
def check(self, goods):
if isinstance(goods, Goods):
if goods.name in ["炸弹", "毒药", "刀具"]:
raise ValueError("危险品!")
else:
print("安全货物!")
else:
raise TypeError("请传入货物对象!")
# 测试
goods1 = Goods("牙刷")
goods2 = Goods("炸弹")
machine = Machine()
try:
machine.check(goods1)
machine.check(goods2)
except ValueError as e:
print("发现危险品:", e)
except TypeError as e:
print("检测失败:", e)
```
在上面的代码中,我们定义了两个类:`Goods` 类表示货物,有一个属性 `name`;`Machine` 类表示检测机器,有一个方法 `check`,检测传入的货物是否为危险品。`check` 方法中,我们首先判断传入的参数是否为 `Goods` 类型,如果不是则抛出异常;如果是,则判断货物名称是否为危险品,如果是则抛出异常,否则输出安全货物信息。
在测试中,我们实例化了两个 `Goods` 对象 `goods1` 和 `goods2`,分别表示一般货物和危险品。然后实例化了一个 `Machine` 对象 `machine`,调用 `check` 方法进行检测。由于 `goods2` 是危险品,因此会抛出异常,我们使用 `try...except` 块捕获异常并输出提示信息。
阅读全文