示例代码:python
class MiNiCarStore(CarStore): def createCar(self, typeName): self.carFactory = CarFactory() # 会出现下划线提示This inspection detects instance attribute definition outside __init__ method return self.carFactory.createCar(typeName)
缘由是:根据 SRP(Single Pesponsibility Principle, SRP) 原则,这个类原本就会承担某个界面逻辑,那么它就不该该再承担“初始化”的职责,初始化的工做应该在另外一个单独的类中完成,这样能让代码更可测(也就是更好写单元测试)数据库
可改写以下:缓存
class MiNiCarStore(CarStore): def __init__(self): self.carFactory = None def createCar(self, typeName): self.carFactory = CarFactory() return self.carFactory.createCar(typeName)
也能够在settings -> editor -> inspections -> python 取消勾选提示ide
扩展阅读单元测试
单一职责原则(Single Pesponsibility Principle, SRP)
单一职责有两个含义: 一个是避免相同的职责分散到不一样的类中, 别一个是避免一个类承担太多职责
为何要遵照SRP呢?测试