我在Python中使用Theano。我有以下代码:
outtmp = trainfunc(some_parameters)
我找不到trainfunc
函数的任何声明,而我只能在前一个函数之前找到一段代码:
# Function compilation
trainfunc = TrainFn1Member(some_other_parameters)
我可以找到TrainFn1Member
的声明,但这两个函数(trainfunc
和TrainFn1Member
)没有相同的签名(输入参数)。
这意味着什么,并且是trainfunc
的声明的第二个代码段?
答案 0 :(得分:3)
大多数情况下,当名称以大写字母开头时,它就是类名(除非它完全是大写的,否则它主要意味着不变)。 Python中没有new
运算符,因此这种命名模式对于区分函数和类非常重要(无论如何它是一般模式)。我不知道Theano,但我认为TrainFn1Member
是一个实现__call__
方法的类,所以你可以像函数一样调用它的实例。在__call__
类定义中搜索TrainFn1Member
。
更新:
根据你的评论,TrainFn1Member
是一个函数(根据我上面所说的,我的想法不是很奇怪;))。在这种情况下,它必须返回一些callable
,这意味着它返回3件事之一(我希望我没有遗漏任何东西):
def
或lambda
)__call__
由于我根本不知道Theano
,我只能建议更深入地了解上述内容..(并欢迎加入霍格沃茨;)