我想知道在包中定義多層類層次結構的正確方法。例如,假設我有這些類: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
提交
取消