Python中的函数声明

时间:2013-08-01 23:22:14

标签: python function theano

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

outtmp = trainfunc(some_parameters)

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

# Function compilation
trainfunc = TrainFn1Member(some_other_parameters)

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

这意味着什么,并且是trainfunc的声明的第二个代码段?

1 个答案:

答案 0 :(得分:3)

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


更新:

根据你的评论,TrainFn1Member是一个函数(根据我上面所说的,我的想法不是很奇怪;))。在这种情况下,它必须返回一些callable,这意味着它返回3件事之一(我希望我没有遗漏任何东西):

  1. 功能(deflambda
  2. 实现__call__
  3. 的类的实例
  4. 某个对象的方法(绑定到某个类实例的函数)
  5. 由于我根本不知道Theano,我只能建议更深入地了解上述内容..(并欢迎加入霍格沃茨;)