为什么Maya的python中的__repr__失败会导致下一次执行失败?

时间:2015-08-29 20:12:52

标签: python maya repr

作为一个背景,我在Maya中使用Python,虽然它实际上没有自动保存功能,所以我半年前写了一个脚本在后台运行并且每分钟左右自动保存。

当从自动保存脚本中弹出未知错误消息时(第一次发生),我正在处理某些事情,经过一些调试后我意识到这是由__repr__代码失败时造成的我正在写作。我有一个快速谷歌,但找不到有关该主题的任何信息,所以我想知道是否有人知道它为什么也会导致下一个命令失败的原因?

我还想象如果有一个重要的脚本正在运行并且有人导致该错误(如果它被停止会导致程序崩溃这样重要),它可能会造成一些损害,是否有更好的方法来检查它是否重要脚本比一般except

作为一个例子,这是我如何重现它:

class TestClass(object):
    def __repr__(self):
        #Do something wrong (in this case format doesn't have enough values)
        return 'TestClass({})'.format()

a = TestClass()

>>> a
# Traceback (most recent call last):
#   File "C:\Program Files\Autodesk\Maya2014\Python\lib\site-packages\maya\utils.py", line 393, in _guiResultHook
#     return formatGuiResult(obj)
#   File "C:\Program Files\Autodesk\Maya2014\Python\lib\site-packages\pymel\internal\startup.py", line 74, in myResultCallback
#     return pprint.pformat(obj)
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 60, in pformat
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 119, in pformat
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 137, in _format
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 230, in _repr
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 242, in format
#   File "C:\Program Files\Autodesk\Maya2014\bin\python27.zip\pprint.py", line 327, in _safe_repr
#   File "<maya console>", line 4, in __repr__
# IndexError: tuple index out of range
# Result:  # 


>>> print 2
# Error: IndexError: file <maya console> line 3: tuple index out of range # 

>>> print 2
2

在Maya,而不是>>>方式,您只需选择要运行的代码并按Enter键(在这种情况下,我只需选择并运行a=TestClass()然后a),所以我不知道问题是否也出现在其他口译中。

0 个答案:

没有答案