我想知道在包中定义多层类层次结构的正确方法。例如,假设我有这些类: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()
注意:然后,您可能希望在家具和椅子类前面加上下划线,因为这会将其标记为受保护。
添加回答
举报
0/150
提交
取消