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

我想知道在包中定义多层类层次结构的正确方法。


例如,假设我有这些类:


class Furniture:

class Table(Furniture):

class Chair(Furniture):

class Armchair(Chair):

等。。


在我的调用代码中,我希望能够执行如下操作:


import furniture

my_chair = furniture.chair.Armchair()

my_table = furniture.Table()

我似乎无法弄清楚我应该将哪些类定义和导入放在什么位置才能工作 - 既要让我的调用代码很好地工作,又要能够看到类。ArmchairChair


请注意 - 我从来不期望实例化中级类,只是在此示例中,但从不或.TableArmchairChairFurniture


烙印99
浏览 61回答 1
1回答

蓝山帝景

$ tree -I __pycache__ furniture/furniture/├── chair.py└── __init__.py__init__.pyclass Furniture:    passclass Table(Furniture):    passchair.pyfrom . import Furnitureclass Chair(Furniture):    passclass Armchair(Chair):    pass和您的代码:import furnitureimport furniture.chairmy_chair = furniture.chair.Armchair()my_table = furniture.Table()注意:然后,您可能希望在家具和椅子类前面加上下划线,因为这会将其标记为受保护。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python