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