Python 3.x 在Python中引发异常

Python 3.x 在Python中引发异常,python-3.x,exception,raise,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): ... 现在,我需要生成一个类,该类给我一个异常(带有raise)。如果我在调用train方法之前调用了classi

我有一个用python创建的类,其结构如下

class Bayes():

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

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

   def classify_prob(self,ejemplo):
     ...

   def classify(self,ejemplo):
     ...
现在,我需要生成一个类,该类给我一个异常(带有raise)。如果我在调用train方法之前调用了classify或classify_prob方法,则会出现此异常

该类必须具有以下结构:

class ClassifyNoTrain(Exception): pass

我怎么能上这门课?。谢谢你

我不确定是否完全理解你的问题,但是这个呢

类别ClassifyNoTrain(例外):
通过
类Bayes():
定义初始化(self,k=1):
self.train\u ok=错误
def传动系(自、X、y):
self.train\u ok=正确
def分类问题(自我、员工):
如果不是自修复,则列车正常:
提高等级notrain()
def分类(自我、员工):
如果不是自修复,则列车正常:
提高等级notrain()
b=贝耶斯()
b、 train('X','y')#对此进行注释以引发异常
b、 分类('ejempo')

谢谢您的回复。当我尝试执行表单的代码时,我有一个问题:
b=Bayes(),ejempo=b.train('X','y'),b.classify(ejempo)
。我有以下错误:NameError:未定义名称“ejempo”。我怎么能用这个异常来解决这类问题呢?因为如果你删除了ejempo周围的引号,那么它就变成了一个变量,而不是字符串“ejempo”本身。NameError意味着没有定义EJEMPO变量。你必须做点什么
ejempo='blabla';b、 分类(ejempo)