我有以下代码:
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?
答案 0 :(得分:5)
变化:
def OutputPlane(SphericalRefraction):
成:
class OutputPlane(SphericalRefraction):
你应该好好去。
答案 1 :(得分:1)
您没有继承SphericalRefraction
,因为您已将OutputPlane
定义为函数而不是类。
所以def OutputPlane(SphericalRefraction):
应该
class OutputPlane(SphericalRefraction):