Как код попробовать / кроме в одном месте, но для многих оценок - PullRequest
0 голосов
/ 12 января 2019

У меня есть фрагмент кода, подобный этому, с try, за исключением, заключенный в функцию tryprint (), так что я могу вызывать эту функцию несколько раз вместо того, чтобы продолжать писать try, за исключением десятка оценок.

import numpy as np
def tryprint(fun):
    try:
        fun
    except ValueError:
        return 'ValueError'

tryprint(np.dot([1,1],[2]))

Здесь, поскольку ввод намеренно неверен, я ожидал, что вызов tryprint () для оценки выведет просто «ValueError», однако это привело к ошибке msg, которую я пытался избежать:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-47-a1b49d56a970> in <module>()
      4     except ValueError:
      5         return 'ValueError'
----> 6 tryprint(np.dot([1,1],[2]))

Что мне нужно сделать, чтобы эта функция выводила «ValueError» только в случае неправильного ввода, вместо вывода полной ошибки msg и остановки работы ячейки? Спасибо.

1 Ответ

0 голосов
/ 12 января 2019

Другое решение состоит в том, чтобы передать функцию и ее аргументы отдельно:

import numpy as np
def tryprint(fun, *args):
    try:
        retVal = fun(*args)
    except ValueError:
        return 'ValueError'
    return retVal

print(tryprint(np.dot, [1,1],[2]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...