我正在尝试按如下方式构建 Python 3 程序:
基类:身体
子类:头
一个超简单的代码表示如下:
class Body:
def __init__(self):
self.head_obj = Head()
# ...Set-up body...
def body_actions:
print('Body does something')
class Head(Body):
def __init__(self):
super().__init__()
# ...Set-up head...
def head_actions:
print('Head does something')
我希望能够创建一个名为“body_obj”的 Body 实例,然后访问 Head 子类(及其属性/方法),如下所示:
body_obj = Body()
body_obj.body_actions()
body_obj.head_obj.head_actions()
但是,当我运行代码时,Python 返回最大递归深度 RuntimeError。
我需要在 Body 和 Head 类中使用 __ init __ 进行一些设置,当我不在 Head 类的 __ init __ 中调用 super() 函数时,Pycharm 会抱怨,因为这似乎是不好的做法。
建立这种结构的正确方法是什么,在实例化基类时,类的子对象都需要初始化?
我已经研究过嵌套类,但这似乎也是不好的做法。
偶然的你
相关分类