python中的最佳返回类型策略

时间:2012-04-02 16:03:27

标签: python exception exception-handling error-handling

我正在寻找一种"它要完成的方式"解决下一个问题:

我有一个名为InputChecker的类,它接受一个输入文件,检查它的内容,如果一切正常,则将文件返回到下一个类(ExpofitAgent)以进行进一步的操作。 / p>

但是,如果文件的格式不符合要求,InputChecker会生成一条错误消息,说明错误发现在文件的哪一行。

InputChecker不会打印错误,只会生成稍后打印的消息。

由于我在python中执行此操作,因此我的方法可以返回文件或字符串。如何在不需要包含额外标志的情况下检查文件是否正常?

2 个答案:

答案 0 :(得分:21)

提出例外:http://docs.python.org/tutorial/errors.html

  

即使语句或表达式在语法上是正确的,但在尝试执行它时可能会导致错误。执行期间检测到的错误称为 exceptions ,并且不会无条件致命......但是,大多数异常都不是由程序处理的,而是导致错误消息...

答案 1 :(得分:3)

我很难想到Marcin's answer使用例外的情况不是最好的答案。

但是如果你确实需要一个替代方案,那么使用元组在Python中一次返回多个东西很容易。

def myfunc():
    # ...
    if file_is_ok:
        return myfile, None
    else:
        return None, error_string

mf, es = myfunc()
if es:
    # show error string
相关问题