首页 > 解决方案 > 将类的实例分配给更大类的属性以创建嵌套点表示法

问题描述

有时我在较小的类中发现有用的拆分较大的类及其方法和属性,然后我访问将较小类的实例分配给较大类的属性。通过这种方式,我可以更好地组织类:当我使用控制台工作时,我可以使用嵌套的点表示法,而不是看到很多属性。例如,我有一个带有一些可以组合在一起的参数的仪器和一个链接到这些参数的方法。我会像这样构造这个类:

class params(object):
    def __init__(self,P,I,D):
        self.P = P
        self.I = I
        self.D = D

    def compute_PID(self):
        pass

class instrument(object):
    def __init__(self,name,SN,P,I,D):
        self.name = name
        self.SN = SN
        self.params = params(P,I,D)

     def swith_on(self):
        pass

myinstrument = instrument('blender','123',45,4,3)
myinstrument.params.P

这种deign模式有什么缺点吗?我想从内存的角度来看,它需要更多的内存,但是与字典相比,使用点表示法使事情变得更容易。

标签: pythonclassinheritance

解决方案


推荐阅读