为了账号安全,请及时绑定邮箱和手机立即绑定

在包中执行类层次结构的正确方法

在包中执行类层次结构的正确方法

烙印99 2022-08-25 15:48:21
我想知道在包中定义多层类层次结构的正确方法。例如,假设我有这些类:class Furniture:class Table(Furniture):class Chair(Furniture):class Armchair(Chair):等。。在我的调用代码中,我希望能够执行如下操作:import furnituremy_chair = furniture.chair.Armchair()my_table = furniture.Table()我似乎无法弄清楚我应该将哪些类定义和导入放在什么位置才能工作 - 既要让我的调用代码很好地工作,又要能够看到类。ArmchairChair请注意 - 我从来不期望实例化中级类,只是在此示例中,但从不或.TableArmchairChairFurniture
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

$ tree -I __pycache__ furniture/

furniture/

├── chair.py

└── __init__.py

__init__.py


class Furniture:

    pass


class Table(Furniture):

    pass

chair.py


from . import Furniture


class Chair(Furniture):

    pass


class Armchair(Chair):

    pass

和您的代码:


import furniture

import furniture.chair


my_chair = furniture.chair.Armchair()

my_table = furniture.Table()

注意:然后,您可能希望在家具和椅子类前面加上下划线,因为这会将其标记为受保护。


查看完整回答
反对 回复 2022-08-25
  • 1 回答
  • 0 关注
  • 60 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信