Python自我需要args,self(args)

时间:2016-06-02 16:24:41

标签: python self

我不太明白这段代码是什么意思:

# instantiate the input layer
x = Input(batch_shape=batch_input_shape,
          dtype=input_dtype, name=name)
# this will build the current layer
# and create the node connecting the current layer
# to the input layer we just created.
self(x)

此代码位于类的成员函数内,请参阅https://github.com/fchollet/keras/blob/master/keras/engine/topology.py第341行。 当我进入self(x)时,它会跳转到此类的另一个成员函数__call__。为什么会这样?感谢。

1 个答案:

答案 0 :(得分:0)

__call__()是Python中的特殊方法之一。它允许类模拟函数类型。

self可能 - 按惯例 - 是你的成员函数的第一个参数,即调用该方法的对象的实例。

因此,

self()将当前实例对象用作函数。根据定义,这意味着将调用对象上的__call__()方法,这正是发生的事情。