python:如果一个方法只是抛出错误,它会返回什么?
以下代码片段来自python cook book,第3版: 正如我在代码中所述,我对这一行有两个问题:python:如果一个方法只是抛出错误,它会返回什么?,python,runtime-error,visitor-pattern,Python,Runtime Error,Visitor Pattern,以下代码片段来自python cook book,第3版: 正如我在代码中所述,我对这一行有两个问题: meth = self.generic_visit # this is the line that I have problem with 为什么self.u访问是无参数的 更重要的是,generic\u visit只会引发运行时错误,为什么它会返回一些东西并分配给“meth” meth=self.generic\u visit使meth引用方法self.generic\u visit本身。
meth = self.generic_visit # this is the line that I have problem with
meth=self.generic\u visit
使meth
引用方法self.generic\u visit
本身。它不是指它的返回值;这可以通过调用meth(x)
来获得,对于一些x
代码简化为:返回getattr(self,methname,'generic\u visit')(node)
。其要点是:调用self.(节点)
(如果存在),否则调用self.generic\u访问(节点)
。据推测,后一种方法可能在类的其他地方使用,或者由子类重新实现。但是,如果只是在vist
方法中直接引发错误,则示例会更清楚。
meth = self.generic_visit # this is the line that I have problem with