1

我在 Python 中使用 Theano。我有以下代码:

outtmp = trainfunc(some_parameters)

我找不到该trainfunc函数的任何声明,而我只能在前一个代码之前找到一段代码:

# Function compilation
trainfunc = TrainFn1Member(some_other_parameters)

我可以找到的声明,TrainFn1Member但两个函数(trainfuncTrainFn1Member)没有相同的签名(输入参数)。

这是什么意思,第二个代码段是 的声明trainfunc吗?

4

1 回答 1

3

大多数情况下,当名称以大写字母开头时,它就是类名(除非它完全大写,那么它主要意味着常量)。Python中没有new运算符,因此这种命名模式对于区分函数和类非常重要(无论如何它是通用模式)。我不知道 Theano,但我想那TrainFn1Member是一个实现__call__方法的类,所以你可以像函数一样调用它的实例。__call__TrainFn1Member类定义中搜索。


更新:

根据您的评论,TrainFn1Member是一个功能(根据我上面所说的很奇怪,什么不是我的想法;))。在这种情况下,它必须返回一些callable意味着它返回三件事之一的东西(我希望我没有错过任何东西):

  1. 函数(deflambda
  2. 实现类的实例__call__
  3. 某个对象的方法(绑定到某个类实例的函数)

由于我根本不知道Theano,我只能建议在了解上述内容的情况下进行更深入的搜索..(欢迎来到霍格沃茨;))

于 2013-08-01T23:32:20.517 回答