抽象基类函数指针python

问题描述 投票:0回答:1

我想对我的一个 api 类进行抽象来解决以下问题。假设我有一个基类,例如:

class AbstractAPI(ABC):
    @abstractmethod
    def create(self):
        pass

    @abstractmethod
    def delete(self):
        pass

还有一个具体的类:

class API(AbstractAPI):
    def create(self):
        print("create")

    def delete(self):
        print("delete")

当请求传入时,我无权访问我的 API 实例。既由于多线程又避免一些循环导入。那时我确实知道稍后要调用哪个方法。所以我的计划是将 AbstractAPI 的函数指针放入队列中,然后等待,直到我能够访问 API 实例。

function_pointer=AbstractAPI.create
# later on ...
function_pointer(ConcreteAPIInstance)

此时调用API实例上的函数指针,ba da bim,ba daoom。那是行不通的。当然,将 AbstractAPI 的函数指针调用到 API 实例上会调用空的 AbstractAPI 方法。什么也没发生。有办法让这个工作吗?

python inheritance
1个回答
0
投票

您可以编写一个函数来调用给定对象上的命名

function_pointer=AbstractAPI.create
方法,而不是直接引用抽象类方法
create()

function_pointer = lambda api : api.create()

def function_pointer(api):
    return api.create()
© www.soinside.com 2019 - 2024. All rights reserved.