2014-11-16 2 views
1

У меня есть эта функция:Python пустой список исключений

def foo(): 
    a = [] 
    if not a: 
     print "empty" 
     return None 
    else: 
     print "not empty" 
     return a 

Есть ли исключения, которые делают то же самое? Просто удалите условие if. Что-то вроде этого:

def foo(list): 
    try: 
     a = list 
     return a 
    except: 
     return None 
+0

Ваша первая функция не имеет смысла - 'if not a:' всегда будет 'True' ... также, пожалуйста, не используйте' list' в качестве имени переменной. –

+2

Кроме того, почему вы хотите вернуть 'None' вместо пустого списка? Пустой список уже оценивает логическое 'False', так что аргументы за ваш вопрос? –

+2

Это звучит как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Что вы на самом деле хотите сделать со списком? * Почему вы хотите проверить, не пуст ли он? –

ответ

3

Я бы просто использовать return l if l else None, вы могли бы попытаться индексировать список, но я бы не рекомендовал его.

def foo(l): 
    try: 
     l[0] 
     return l 
    except IndexError: 
     return None 
+2

Лучше не использовать только 'except', так как это может скрыть неожиданные ошибки. Вместо этого используйте 'except IndexError'. – stalk

+0

@stalk, true, добавлено, я бы не использовал ничего, кроме как просто показать, что это возможно. –

Смежные вопросы