从 C++ 到 Python 的转换——如何在 Python 中声明一个没有定义的虚方法

我正在尝试将 C++ 库转换为 python。


c++文件


class A

{

  public:

    virtual void example(paramtype, paramtype) = 0;

    void myMethod(void);

}


void A::myMethod(void){

    example();

}


class B: public A

{

  public:

    void example(paramtype p1, paramtype p2); // implemented

}

我很难实现myMethod。我想创建一个变量来保存示例方法并像下面这样在myMethod 中调用该变量。


蟒蛇文件


class A:

    def __init__(self):

        self.example = None


    def myMethod(self):

        self.example()

但是后来编辑说不能调用 None 类型(当然)。我怎样才能做到这一点?


临摹微笑
浏览 238回答 2
2回答

qq_花开花谢_0

C++ 中的基类声明了一个没有定义的虚方法。virtual void example(paramtype, paramtype) = 0;这意味着它必须在要使用的子类中定义。在你的图书馆里,那是 class B。在 Python 中,您可以使用raise NotImplementedError()表示方法尚未实现。有关更多详细信息,请参阅此答案。class A:    def example(self):        raise NotImplementedError()    def myMethod(self):        self.example()class B(A):    # override the example method by providing the implementation    def example(self):        # implementation在这个例子中,调用example一个类型的对象A会抛出一个错误,因为这个方法没有定义。您只能在类型为 的对象上调用该方法B。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python