如何依次调用类中的多个函数而不会崩溃?

我试图将我的代码从头到尾运行100代,但是事实证明这非常困难。为了做到这一点,我正在使用:

if __name__ == "__main__":
      classN = Class()

然后,我继续在for循环中依次调用每个函数:

for i in range(1,101):
    classN.func1()     #returns binary self.list1
    classN.func2()     #returns binary self.list2
    classN.func3()     #returns binary self.list either 1 or 2 / throws ValueError
    classN.func4()     #returns integer between 0-1
    classN.func5()     #return print statements summarizing whats happening at each step

我对编码还很陌生,并尝试了几种不同的方法。但是,如果我将范围增加到(1,2)以上,则会崩溃。我想包含一条条件语句,说func3()是否返回ValueError,打印错误并从头开始重新启动程序。我不确定如何正确执行此操作。当前,ValueError仅终止整个程序。我是否通过使用循环以正确的方式进行处理,或者有更好的方法来执行此操作?

另外,当未引发ValueError时,程序似乎仍在func3()处超出range(1,2)崩溃,因此不确定为什么要做的就是更改实例属性的值并返回它。我假设这是因为我如何在main中调用函数。

评论
  • nsunt
    nsunt 回复

    您可以只使用try-except块:

    for i in range(1,101):
        classN.func1()     #returns binary self.list1
        classN.func2()     #returns binary self.list2
    
        try: 
            classN.func3()     #returns binary self.list either 1 or 2 / throws ValueError
        except ValueError as err:
            print(err)
        classN.func4()     #returns integer between 0-1
        classN.func5()     #return print statements summarizing whats happening at each step
    

    Check out the official docs for a deeper understanding of error and exception handling: https://docs.python.org/3/tutorial/errors.html