python - 初始化后如何自动调用特定的类方法?
问题描述
假设我有课
class NewSettingsAdded: # type: NewSettingsAdded
def __init__(self, system: str, org_id: ):
self.system = system
self.org_id = org_id
def find_head_organization(self):
"do some prepare"
def process(self):
" process"
我想在实例初始化后自动为自己调用 find_head_organization。我试图做类似的事情
class OrganisationCaller(type):
def __call__(cls, *args, **kwargs):
obj = type.__call__(cls, *args, **kwargs)
obj.new_init()
return obj
class NewSettingsAdded: # type: NewSettingsAdded
def __init__(self, system: str, org_id: int,):
__metaclass__ = OrganisationCaller
self.system = system
self.org_id = org_id
def find_head_organization(self):
"do some prepare"
def process(self):
" process"
但是在这种方法中,它会在初始化后调用所有方法
解决方案
如果您的目标是“在类实例化时自动执行”对象,只需将 self.run() 放入 init 中:
def __init__(self):
self.bar = 1
self.run()
推荐阅读
- git - 重命名master中的目录时如何将master合并到问题中?
- firebase - 与 Jest 一起使用时 Firebase 模拟器泄漏
- r - 解释 R 寓言中的 arimax 预测
- vba - VBA 访问帮助 - 一个用户的多行,需要将它们分组并只向该人发送一封电子邮件,而不是每行一封电子邮件
- r - mutate 函数中的错误消息:没有适用于 'mutate_' 的方法应用于类“c('double','numeric')”的对象
- python - 使用 ctypes 回调功能时访问冲突
- animation - 在现有动画运行时为 SwiftUI 状态更改设置动画会导致 Form 处于不一致状态
- python - N维数据集的质心
- c++ - 编写接受通用 n 维函数的模板化递归积分方法
- html - Chrome PDF 下载缓存文件