使用类继承时输入错误

时间:2016-02-05 14:12:01

标签: python class oop inheritance typeerror

我有以下代码:

class SphericalRefraction(OpticalElement):
    def __init__(self, r0, normal, curvature, n, h):
        self._r0 = r0
        self._normal = normal/npl.norm(normal)
        self._curvature = curvature
        self._n = n
        self._aperture = h

def OutputPlane(SphericalRefraction):
    def __init__(self, r0, normal, h=15):
        SphericalRefraction.__init__(self, r0=r0, normal=normal, curvature=0, n=1, h=h)

但是当我在main中构建一个类OutputPlane时:

screen = r.OutputPlane(np.array([0,0,f]),np.array([0,0,1]), 5)

我有以下错误:

TypeError: OutputPlane() takes exactly 1 argument (3 given)

我做错了什么?我该怎么办才能从SphericalRefraction继承OutputPlane?

2 个答案:

答案 0 :(得分:5)

变化:

def OutputPlane(SphericalRefraction):

成:

class OutputPlane(SphericalRefraction):
你应该好好去。

答案 1 :(得分:1)

您没有继承SphericalRefraction,因为您已将OutputPlane定义为函数而不是类。

所以def OutputPlane(SphericalRefraction): 应该 class OutputPlane(SphericalRefraction):