首页 > 解决方案 > python中的call()和__call__()方法有什么区别?

问题描述

在 tensorflow 文档中,我看到在子类化激活和模型时定义的 call() 方法。然而,在子类化正则化器、初始化器和约束的情况下,它们定义了 __class__() 方法。

在玩两者时,我自己找不到任何差异。

有人能告诉我有什么区别吗?

标签: pythonclasstensorflowmethods

解决方案


call()只是一个常规方法,您可以在类的实例上调用它,例如foo.call(...).

__call__()是一种使实例本身可调用的特殊方法。所以foo.call(...)你可以做而不是做foo(...)。(你也可以foo.__call__()静止不动。)


推荐阅读