Python中的函数声明

Python中的函数声明,python,function,theano,Python,Function,Theano,我在Python中使用Theano。我有以下代码: outtmp = trainfunc(some_parameters) 我找不到trainfunc函数的任何声明,而我只能找到上一个之前的一段代码,如下所示: # Function compilation trainfunc = TrainFn1Member(some_other_parameters) 我可以找到TrainFn1Member的声明,但是两个函数(trainfunc和TrainFn1Member)没有相同的签名(输入参数)

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

outtmp = trainfunc(some_parameters)
我找不到
trainfunc
函数的任何声明,而我只能找到上一个之前的一段代码,如下所示:

# Function compilation
trainfunc = TrainFn1Member(some_other_parameters)
我可以找到
TrainFn1Member
的声明,但是两个函数(
trainfunc
TrainFn1Member
)没有相同的签名(输入参数)


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

当名称以大写字母开头时,它就是类名(除非它完全大写,否则它主要表示常量)。Python中没有新的操作符,所以这个命名模式对于区分函数和类非常重要(无论如何,它是通用模式)。我不知道答案,但我假设
TrainFn1Member
是一个实现
\uuuu调用\uuuu
方法的类,因此您可以像调用函数一样调用它的实例。在
TrainFn1Member
类定义中搜索
\uuuuu调用


更新:

根据您的评论,
TrainFn1Member
是一个函数(根据我上面所说的,这很奇怪,但这不是我的想法;)。在这种情况下,它必须返回一些
可调用的
,这意味着它将返回以下三项之一(我希望我没有遗漏任何内容):

  • 函数(
    def
    lambda
  • 实现
    调用的类的实例
  • 某个对象的方法(绑定到某个类实例的函数)

  • 因为我根本不知道答案,我只能建议你更深入地了解上面的内容。。(欢迎来到霍格沃茨;)

    我很肯定这不是一门课。我可以发现声明为:def TrainFn1Member(parameters):…非常奇怪(按照命名约定),但它必须返回实现
    \uu调用的某个类的函数或实例。在这种情况下,我唯一能提出的建议是更深入一些……)显然
    TrainFn1Member
    会生成一些
    callable
    TrainFn1Member
    返回另一个函数。查看
    TrainFn1Member
    的源代码;其中可能有一个
    lambda
    def
    语句。如果该
    trainfunc=TrainFn1Member(…)
    是from,则其“有点”复杂。。但是在函数生成之前有一些注释(可能很有用,但我现在没有更多的时间去发现它真正的作用,无论如何我希望我能帮助找到一个好的方向)no.function()返回一个实现
    \u调用\u
    的对象。这就是为什么它是可调用的。TrainFn1Member不使用与返回的参数相同的参数是正常的,因为TrainFn1Member使用Theano构建python函数。