python:如果一个方法只是抛出错误,它会返回什么?

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本身。

以下代码片段来自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(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