在Python中引发异常

时间:2020-06-30 13:46:05

标签: python-3.x exception raise

我有一个用python创建的类,具有以下结构。

class Bayes():

   def __init__(self,k=1):
     ...

   def train(self,X,y):
     ...

   def classify_prob(self,ejemplo):
     ...

   def classify(self,ejemplo):
     ...

现在,我需要生成一个给我一个异常的类(加薪)。如果我在调用train方法之前先调用classify或classify_prob方法,则会出现此异常。

该类必须具有以下结构:

class ClassifyNoTrain(Exception): pass

我该如何上课?谢谢

1 个答案:

答案 0 :(得分:1)

我不确定您是否完全了解您的问题,但是那又如何呢?

class ClassifyNoTrain(Exception):
    pass


class Bayes():

   def __init__(self,k=1):
       self.train_ok = False

   def train(self,X,y):
       self.train_ok = True

   def classify_prob(self, ejemplo):
       if not self.train_ok:
           raise ClassifyNoTrain()

   def classify(self, ejemplo):
       if not self.train_ok:
           raise ClassifyNoTrain()

b = Bayes()
b.train('X', 'y')  # comment this to raise the exception
b.classify('ejemplo')