问题描述
在此链接中: https://github.com/SethHWeidman/DLFS_code/blob/master/03_dlfs/Code.ipynb 一些用于解释深度学习的代码。
我的问题是,为什么某些类中的某些方法没有针对它们的代码, 只是引发notimplementederror,然后在其他类中为它们编码?我们可以为它们编码之前,替换为写“ raise notimplementederror”吗?
解决方法
这些是基类。 基类在声明一些将由其子类实现的抽象方法的方式方面类似于接口,但是基类具有一些将被继承的实现的方法。不应该实例化基类,这就是为什么它们在抽象方法中引发NotImplemented错误的原因,因此您不得不不实例化它们。 如果您查看ParamOperation类,则该类继承自Operation,并且应该但不实现其抽象方法。那就是评论告诉你的。 创建基类的一种更Python化的方法是从ABCmeta继承基类,并在此仓库中使用@abstractmethod: https://gitlab.com/TuringFactory/tf_page/tf_backend/-/tree/dev/main/shared
您共享的存储库有点混乱,因为它没有在子类中实现抽象方法。我不推荐您将其用于学习本主题。