自己写:让卡片持有一份尺寸

自己写:让卡片持有一份尺寸

把 Card 补完——它持有尺寸,不继承尺寸。

阅读更多 →
⚠️ 换掉里面那个零件,外面一行没改

⚠️ 换掉里面那个零件,外面一行没改

换一种尺寸塞进去。Card 一个字都没动。 class Size: """一份尺寸,自己管自己的校验""" def __in

阅读更多 →
一张卡片持有一份尺寸

一张卡片持有一份尺寸

三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。Card **持有**一个 Size,而不是继承它: class Size: """一份尺寸,自己

阅读更多 →
继承带来的那个额外麻烦是什么

继承带来的那个额外麻烦是什么

用继承复用代码,附带的麻烦是【0】。

阅读更多 →
⚠️ 「组合优于继承」说的是什么

⚠️ 「组合优于继承」说的是什么

这句老话的意思是【0】。

阅读更多 →
「has-a」和「is-a」怎么分

「has-a」和「is-a」怎么分

判断该用组合还是继承,最好用的一句话是【0】。

阅读更多 →
⚠️ 修法:让它们做兄弟,不做父子

⚠️ 修法:让它们做兄弟,不做父子

既然"正方形 is-a 长方形"站不住,就让两者都继承一个只承诺"能算面积"的父类。把 Square 写出来。

阅读更多 →
🔴 把

🔴 把"预期"和"实际"摆在一起

把长方形的结果、正方形的结果、以及调用方对正方形的预期三个数一起输出。

阅读更多 →
父类的初始化谁来调

父类的初始化谁来调

给长方形加一个名字。补上构造里漏掉的那一句。

阅读更多 →
🔴 同一个函数,喂子类进去就不对了

🔴 同一个函数,喂子类进去就不对了

一个函数只做一件事:把宽改成 10,然后返回面积。调用方拿的是"长方形",预期是 10 乘原来的高。两个对象各喂一次: class Rect: def __init__(s

阅读更多 →