我有4个模块。 1. run.py 这里我正在进行A类和B类的初始化和设置。 我想做的是:
try:
x = x[0]()
except TestFailure as tf:
print tf.message
由于for循环,x迭代A类和B类。因此,对于第一次迭代,第1次它正在为A类进行初始化,然后它正在为B进行。
Test.py 我在这里上课了
class Test(object):
IS_TEST = False
teardown_stack = []
td=[]
def __init__(self):
print "in Test init"
super(Test, self).__init__()
def setup(self):
print "\tin Test setup"
#self.add_teardown(foo)
现在
class TestFailure (None, msg):
message = ""
if self.msg:
message = self.msg
pass
我有A.py
class A(Test):
IS_TEST = True
def __init__(self):
test_variable = 9;
if test_variable < 0:
raise TestFailure("test_variable is negative.")
print "in A init"
super(A, self).__init__()
def setup(self):
print "in A setup"
我的最后一个模块是B.py
class B(A):
IS_TEST = True
def __init__(self):
test_variable = 9;
if test_variable < 0:
raise TestFailure("test_variable is negative.")
print "in B init"
super(B, self).__init__()
def setup(self):
print "\tin B setup"
之前我没有使用python异常,因此我根本不熟悉它们。怎么做这个工作?我到底哪里错了? 我希望通过这种方法引发异常,在进行初始化之前,只有当test_variable为正时才会发生操作。
答案 0 :(得分:0)
我无法理解脚本的流程,但就有关异常类的问题而言,为什么不在创建异常类时继承Exception类?
class TestFailure(Exception):
pass
其余来自继承。您可以在此处找到更多信息:Proper way to declare custom exceptions in modern Python?