我想知道在包中定義多層類(lèi)層次結(jié)構(gòu)的正確方法。例如,假設(shè)我有這些類(lèi):class Furniture:class Table(Furniture):class Chair(Furniture):class Armchair(Chair):等。。在我的調(diào)用代碼中,我希望能夠執(zhí)行如下操作:import furnituremy_chair = furniture.chair.Armchair()my_table = furniture.Table()我似乎無(wú)法弄清楚我應(yīng)該將哪些類(lèi)定義和導(dǎo)入放在什么位置才能工作 - 既要讓我的調(diào)用代碼很好地工作,又要能夠看到類(lèi)。ArmchairChair請(qǐng)注意 - 我從來(lái)不期望實(shí)例化中級(jí)類(lèi),只是在此示例中,但從不或.TableArmchairChairFurniture
1 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
$ 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()
注意:然后,您可能希望在家具和椅子類(lèi)前面加上下劃線,因?yàn)檫@會(huì)將其標(biāo)記為受保護(hù)。
添加回答
舉報(bào)
0/150
提交
取消