小编Van*_*tam的帖子

Python抽象类应强制派生类在__init__中初始化变量

我想有一个抽象类,它强制每个派生类在其__init__方法中设置某些属性。

我已经看了几个不能完全解决我问题的问题,特别是在这里这里看起来很有希望,但我无法使其正常运行。

我假设我想要的结果可能类似于以下伪代码

from abc import ABCMeta, abstractmethod


class Quadrature(object, metaclass=ABCMeta):

    @someMagicKeyword            #<==== This is what I want, but can't get working
    xyz

    @someMagicKeyword            #<==== This is what I want, but can't get working
    weights


    @abstractmethod
    def __init__(self, order):
        pass


    def someStupidFunctionDefinedHere(self, n):
        return self.xyz+self.weights+n



class QuadratureWhichWorks(Quadrature):
    # This shall work because we initialize xyz and weights in __init__
    def __init__(self,order):
        self.xyz = 123
        self.weights = 456

class QuadratureWhichShallNotWork(Quadrature):
    # …
Run Code Online (Sandbox Code Playgroud)

python oop abstract-class

14
推荐指数
1
解决办法
689
查看次数

标签 统计

abstract-class ×1

oop ×1

python ×1