我正在尝试将 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 类型(当然)。我怎样才能做到这一点?
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
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。
添加回答
举报
0/150
提交
取消