gpt4 book ai didi

python - 在另一个类中定义一个类并调用父方法

转载 作者:行者123 更新时间:2023-11-28 17:51:35 25 4
gpt4 key购买 nike

我有 c 类定义和该类的一些内部类定义:

class DoXJob():
def __init__(self, param1, param2):
<choose an inner class to use>

def DoIt(self):
pass

def Finalize(self):
<do finalization>

class DoXInSomeWay():
def __init__(self):
....
....
def DoIt(self):
...

class DoXInSomeOtherWay():
def __init__(self):
....
....
def DoIt(self):
...

逻辑很简单,我有一些内部类定义来处理一个作业,我用一些参数调用DoXJob,然后它决定将使用哪个内部类,并覆盖DoXJob。 DoIt 方法与所选内部类方法的方法(DoXInSomeOtherWay.DoItDoXInWay.DoIt)

obj = DoXJob(param1, param2)
obj.DoIt()

一切都很好,我想要的是从 ineer 类中触发 DoXJob.Finalize,就像从 DoXInSomeOtherWay.DoItDoXInWay.DoIt 中调用它一样。但我不知道如何处理这个问题,这是否是正确的方法。还是作为 DoXJob 方法调用更好:

obj = DoXJob(param1, param2)
obj.DoIt()
obj.Finalize()

最佳答案

不幸的是,python 似乎没有办法引用封闭实例。

相反,在您选择要使用的内部类并可能实例化它的外部 __init__ 中,您需要将外部对象的 self 作为参数传递给内部类实例。

编辑:拿起重新设计的主题 - 如果您可以简单地调用 DoIt 方法,然后等待它返回,那么您可以在同一时间调用 Finalize放置(调用者,即),从而避免内部调用外部的需要。

关于python - 在另一个类中定义一个类并调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com