⚠️ 「为了复用而继承」错在哪
只是想复用父类的几个方法就去继承它。这么做的问题是【0】。
一个上帝类,几个方法几种理由
数一数这个类有几个方法、这些方法归几种改动理由: GOD = ["area", "perimeter", "to_text", "to_json", "
⚠️ 继承链一深,就说不清行为从哪来
四层继承,中间两层什么都没写。看看 who 从哪儿来、这条链一共几层(不算 object): class A: def who(self): return "A" class B(A): pass class
把上帝类拆开:几何归几何,格式归格式
三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。几何那部分已经拆好了,把格式那部分补上。
🔴 继承来的 sort,把队列的顺序毁了
队列该先进先出。继承 list 那版被 sort 一搅,出来的就不是最先进的那个了。用组合重写一个。
自己写:给类闻一闻味道
把 n05/n07 的两条判据写成一个函数:理由多是上帝类,链深是继承滥用。
自己数:一个上帝类的两个数
数一数这个类有几个方法、这些方法归几种改动理由。
设计类模型的第一步是什么
拿到一个小需求,动手写类之前第一件事是【0】。
⚠️ 类模型该在什么时候定继承
什么时候才该在模型里画一条继承线?【0】。
一个小模型的三个数
把一个小系统的类模型摆出来,数一数三个数: # 一个小系统:形状 + 报表 + 存储 MODEL = { "Shape": ["area"], # 只管