Как справиться с ошибкой NoneTypeError? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть функция, которая возвращает список.Но ему нечего возвращать.Я хочу обработать ошибку TypeError.Я пробовал это:

def isLookingAround(lst):
    res = []
    body = []
    for data in lst:
        res += isLookingAt(normalize2(data))
        body += isBodyDirection(normalize2(data))


    if most_body == "front" or most_body == "backward":
        if ('lookL' in res and 'lookR' in res):
            return 'lookingAround'
    elif most_body == "left" or most_body == "right":
        if ('lookF' in res and 'lookB' in res):
            return 'lookingAround'

Ошибка:

    Traceback (most recent call last):
  File "action_detector.py", line 201, in <module>
    write_labels(input_source, labels)
  File "action_detector.py", line 179, in write_labels
    for itr, word in enumerate(lbls):
TypeError: 'NoneType' object is not iterable

Я все еще получаю сообщение об ошибке с label.append (detectors.isLookingAround (back_Data)).Буду признателен за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Чтобы обработать исключение NoneType, вы можете заключить оператор в блоки try-except.

Например, вы можете сделать что-то вроде

try:
    labels.append(detectors.isLookingAround(back_Data))
except TypeError:
    # Do something. Like,
    return

Она «поймает» ошибку, и тогда вы сможете правильно ее обработать. Однако ошибка, похоже, исходит из метода isLookingAround.

Вы можете перепроверить это, и если вы не можете решить его, напишите новый вопрос, я думаю.

0 голосов
/ 12 ноября 2018

Для проверки данных пусто. Вы можете использовать ниже код

if data:
   l.append(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...