相关疑难解决方法(0)

Python try-else

声明的可选else条款的用途是try什么?

python exception-handling

532
推荐指数
11
解决办法
29万
查看次数

XML解析:元素树(etree)与minidom

我多年来一直使用minidom来解析XML.现在我突然了解了Element Tree.我的问题哪个解析更好?那是:

  • 哪个更快?
  • 哪个使用更少的内存?
  • 要么有任何O(n ^ 2)依赖关系我应该担心?
  • 是否有人为了另一个而贬值?

为什么我们有两个接口?

谢谢.

python elementtree minidom xml-parsing

29
推荐指数
2
解决办法
2万
查看次数

捕获类中的异常

是否可以编写异常处理程序来捕获类中所有方法生成的运行时错误?我可以通过try/except包围每个人来做到这一点:

class MyError(Exception):
    def __init__(self, obj, method):
        print 'Debug info:', repr(obj.data), method.__name__
        raise

class MyClass:
    def __init__(self, data):
        self.data = data

    def f1(self):
        try:
            all method code here, maybe failing at run time
        except:
            raise MyError(self, self.f1)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更通用的方法来实现同样的目标 - 因为在课堂上的任何地方都会出现任何错误.我希望能够访问类数据以打印一些调试信息.另外,如何获取失败的方法名称(示例中为f1)?

更新:感谢所有人的慷慨解答,装饰者的想法看起来就像是要走的路.关于捕获所有异常的风险:分支中的raise语句except应该重新引发异常而不会丢失任何信息,不是吗?这就是我把它放在MyError中的原因......

python exception-handling

14
推荐指数
2
解决办法
1万
查看次数