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

2024-09-24 02:19:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有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,然后它决定将使用哪个内部类,并用选定的内部类方法(DoXInSomeOtherWay.DoItDoXInWay.DoIt)重写{}方法

^{pr2}$

一切都很好,我想要的是从ineer类中触发DoXJob.Finalize,比如从DoXInSomeOtherWay.DoIt或{}调用它。但我不知道该如何处理,也不知道这是否正确。还是作为DoXJob方法调用更好,如:

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

Tags: 方法selfanobj定义initdefclass
1条回答
网友
1楼 · 发布于 2024-09-24 02:19:32

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

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

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

相关问题 更多 >