python-3.x - 代码是什么意思------“self(img,scale)”
问题描述
在一个类的定义中,有代码——“self(parameters)” 我认为self是类的重点,但代码就像一个函数。我的问题是如何理解 python 类中的“self()”
roi_cls_loc, roi_scores, rois, _ = self(img, scale=scale)
解决方案
看起来该类是实现该功能的类函数类(有时也称为“仿函数”)__call__
。您可以像使用函数一样使用此类的对象:
class Foo:
def __call__(self):
print("__call__");
obj = Foo();
obj();
如果你想从一个方法中做到这一点,你可以使用self
:
class Foo:
def function(self):
self();
def __call__(self):
print("CALL");
obj = Foo();
obj.function();
代替self();
你也可以写self.__call__();
,但这不那么可读,所以大多数人更喜欢self();
.
推荐阅读
- tkinter - 我的 btn_enter 在它被点击后不起作用。我究竟做错了什么。我希望它只工作三遍,然后它应该停止工作
- arrays - c中的空数组大小
- java - 解压多个zip文件时看不懂中文单词
- javascript - 如果 Discord.JS 中缺少要查找的字段,我如何为我的 MongoDB 集合添加新字段?
- javascript - 如何根据产品 ID 为 Woocommerce 产品属性定义一个类?
- reactjs - JSON 返回 [对象] [对象]
- sql - Dbeaver 级别函数或列名
- mysql - 当数据存在上百万条数据时,如何让这个查询更高效更快
- python - 根据布尔方阵对 numpy 数组进行排序
- r - 如何在闪亮的应用过滤器/按钮中应用正则表达式?