Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 处理异常或返回值的更好方法_Python - Fatal编程技术网

Python 处理异常或返回值的更好方法

Python 处理异常或返回值的更好方法,python,Python,所以,这是我到目前为止得到的。。 有没有更好的方法来处理这件事。。返回值或记录错误 请求原谅比请求允许容易。您可以对文件名变量使用条件赋值,如果这是错误的,则可以在其周围发出警告 根据您真正想要完成的任务,您可以使用所有\u文件的长度来查看目录是否真正为空 def foo(directory): filename = '' #dont like this all_files = [get from somewhere] try: if 'foo' in a

所以,这是我到目前为止得到的。。 有没有更好的方法来处理这件事。。返回值或记录错误

请求原谅比请求允许容易。您可以对
文件名
变量使用条件赋值,如果这是错误的,则可以在其周围发出警告

根据您真正想要完成的任务,您可以使用
所有\u文件的长度来查看目录是否真正为空

def foo(directory):
    filename = '' #dont like this
    all_files = [get from somewhere]
    try:
        if 'foo' in all_files:
            filename = 'foo'

        else:
            filename = all_files[0]
     except ValueError:
          logger.warning('Directory is empty')
     finally:
             return os.path.join(directory, filename)
请求原谅比请求允许容易。您可以对
文件名
变量使用条件赋值,如果这是错误的,则可以在其周围发出警告

根据您真正想要完成的任务,您可以使用
所有\u文件的长度来查看目录是否真正为空

def foo(directory):
    filename = '' #dont like this
    all_files = [get from somewhere]
    try:
        if 'foo' in all_files:
            filename = 'foo'

        else:
            filename = all_files[0]
     except ValueError:
          logger.warning('Directory is empty')
     finally:
             return os.path.join(directory, filename)
也许更好


可能更好…

我不知道这将如何返回
ValueError
。如果列表为空,则肯定是
索引器
,但不是
值错误
。如果所有文件都=5,则可能是(或者更可能是没有)?或者某个自定义类。。。我不知道我是不是要走了异常操作正在捕获我不知道如何返回
ValueError
。如果列表为空,则肯定是
索引器
,但不是
值错误
。如果所有文件都=5,则可能是(或者更可能是没有)?或者某个自定义类。。。我不知道我是不是要走了异常操作正在捕获为什么需要
filename=”“
。。。你说的是eafp,但用的是lbylP(+1,尽管如此)。。。但是,如果所有的_文件都是
None
,这将引发异常(这可能是期望的行为),可能有更好的方法来处理这种情况,以及
filename
的看似冗余的声明。当我到达一台机器时,我会试一试。为什么需要
filename=”“
。。。你说的是eafp,但用的是lbylP(+1,尽管如此)。。。但是,如果所有的_文件都是
None
,这将引发异常(这可能是期望的行为),可能有更好的方法来处理这种情况,以及
filename
的看似冗余的声明。当我到达一台机器前,我会试一试。
def foo(directory):
    all_files = [get from somewhere]
    try:
        filename = 'foo' if 'foo' in all_files else all_files[0]
    except (IndexError,ValueError):
        logger.warning('Directory is empty')
    else:
        return os.path.join(directory, filename)