среда, 18 мая 2016 г.

How do I write try...except in one string

1. for nuke:
exec('try:\n    n = nuke.toNode(\'DisableNodeController\'); k = n.knob(\'disable\'); k.setValue(0);\nexcept:\n   nuke.message(\'DisableNodeController is not in scene\')')

2. second variant
def safecall(f, default=None, exception=Exception):
    '''Returns modified f. When the modified f is called and throws an
    exception, the default value is returned'''
    def _safecall(*args,**argv):
        try:
            return f(*args,**argv)
        except exception:
            return default
    return _safecall

[safecall(int)(i) for i in '1 2 x'.split()]   # returns [1, 2, None]

[safecall(int, -1, ValueError)(i) for i in '1 2 x'.split()]    # returns [1, 2, -1]

Комментариев нет:

Отправить комментарий

Постоянные читатели