classA在Python中没有属性“camera”错误

classA在Python中没有属性“camera”错误,python,python-3.x,oop,inheritance,manim,Python,Python 3.x,Oop,Inheritance,Manim,我正在使用一个包含大量文件和类的大型Python库。我试图创建自己的类以防止代码重复。下面是所有课程的基本概述 # The Scene Class class Scene(Container): def __init__(self, **kwargs): Container.__init__(self, **kwargs) // Set some attribute values including... self.camera = se

我正在使用一个包含大量文件和类的大型Python库。我试图创建自己的类以防止代码重复。下面是所有课程的基本概述

# The Scene Class
class Scene(Container):
     def __init__(self, **kwargs):
        Container.__init__(self, **kwargs)
        // Set some attribute values including...
        self.camera = self.camera_class(**self.camera_config)

# The Camera Class
class MovingCamera(Camera):
     def __init__(self,  frame=None, **kwargs):
         // Set up values some values and then...
         Camera.__init__(self, **kwargs)

# The MovingCameraScene Class
from manimlib.camera.moving_camera import MovingCamera
from manimlib.scene.scene import Scene

class MovingCameraScene(Scene):
      CONFIG = {
          "camera_class": MovingCamera
      }

      def setup(self):
        Scene.setup(self)
        assert(isinstance(self.camera, MovingCamera))
        self.camera_frame = self.camera.frame
        return self

      // More code. There is no __init()__ method in this class.

# My Custom Class the Inherits MovingCamera Scene
class Something(MovingCameraScene):
      
      CONFIG = {
          "alpha": "beta"
      }

      def __init__(self, **kwargs):
           self.texts = []

      def common_method(self):
            
            texts = self.texts

            for i in texts:
                  // Manipulates Boxes

# My Final Class that Inherits Previous Class
class classA(Something):

    CONFIG={
        "opt_a": "opt_b"
    }

    def construct(self):
         texts = self.texts

         texts.append('Apple')
         .
         .
         .
         .
         self.common_method()

# This is another class that inherits `MovingCameraScene`
class classB(MovingCameraScene):

    CONFIG={
        "opt_a": "opt_b"
    }

    def construct(self):
         texts = []

         texts.append('Apple')
         .
         .
         .
         .
         // More code that was in `common_method` of `Something` but directly pasted here.
还有很多课程,但希望这足够了

当我尝试使用自己的类(
Something
)作为
classA
)的父类时,出现以下错误:

'classA' object has no attribute 'camera'

使用直接继承自
MovingCameraScene
classB
时,我没有遇到此错误。您没有在
某物中调用超级构造函数:

class某物(移动摄影机场景):
配置={
“α”:“β”
}
定义初始(自我,**kwargs):
超级()
self.text=[]

您不能在
某物中调用超级构造函数:

class某物(移动摄影机场景):
配置={
“α”:“β”
}
定义初始(自我,**kwargs):
超级()
self.text=[]

请用完整的错误回溯更新您的问题。
有些东西。
需要调用父类
\uuuuu init\uuuu()
谢谢@TomDalton,但是
MovingCameraScene
中没有
\uuuu init\uuuu()
)这很好-将隐式调用
MovingCameraScene
的父级的
\uuuuuuuuuuuuuuu
。请使用完整的错误回溯更新您的问题。
Something.\uuuuuuuuuuuu()
需要调用父级
\uuuuuuuuuuuuuuuuuuuuuuuuu()
谢谢@TomDalton,但没有
\uuuuuuuuuuuuuuuuuuuuuuuuuu())
移动摄像机场景中这很好-将隐式调用
MovingCameraScene
的父级的
\uuuu init\uuuu
。谢谢@qumarana.)我有两个问题。1.
MovingCameraScene
没有
\uuuu init()函数。它如何在不调用自己的超级构造函数的情况下工作?2.为什么
classB
也继承了
MovingCameraScene
,但不在任何地方调用
\uuuu init()\uuuuu
。所有
\uu init\uuuuu()
方法都只是普通方法,可以被派生类重写,但如果不是,它们就是继承的。上面看到的
super()。\uuuuu init\uuuuu()
在继承树中向上调用下一个
\uuuuuuuu init()
。因此
移动摄影机场景
摄影机
继承
\uuuuuuuu init()。
并正常工作。classB也没有定义自己的
\uuuu init()\uuuu
函数,因此它也继承自己的函数以正常工作。但是,我已经为
classA
定义了我自己的
\uuuuuu init()\uuuu
,所以它被重写了,我需要调用它的超级构造函数的
\uuuuu init()\uuuuuu
,以使它正常工作。谢谢@quamrana。我理解正确了吗?我想是的,但是你的帖子显示,无论是
classA
,还是
classB
都没有自己的
\uuuuu init\uuuuuu()
。谢谢@qumarana.)我有两个问题。1.
MovingCameraScene
没有
\uuuu init()函数。它如何在不调用自己的超级构造函数的情况下工作?2.为什么
classB
也继承了
MovingCameraScene
,但不在任何地方调用
\uuuu init()\uuuuu
。所有
\uu init\uuuuu()
方法都只是普通方法,可以被派生类重写,但如果不是,它们就是继承的。上面看到的
super()。\uuuuu init\uuuuu()
在继承树中向上调用下一个
\uuuuuuuu init()
。因此
移动摄影机场景
摄影机
继承
\uuuuuuuu init()。
并正常工作。classB也没有定义自己的
\uuuu init()\uuuu
函数,因此它也继承自己的函数以正常工作。但是,我已经为
classA
定义了我自己的
\uuuuuu init()\uuuu
,所以它被重写了,我需要调用它的超级构造函数的
\uuuuu init()\uuuuuu
,以使它正常工作。谢谢@quamrana。我理解对了吗?我想是的,但是你的帖子显示,无论是
classA
,还是
classB
都没有自己的
\uuuuu init\uuuuu()