首页 > 解决方案 > Python中的聚合与组合

问题描述

不管我如何创建对象(组合或聚合),我仍然在内存中看到相同的实例化对象计数,即只有一个分配给“容器”变量的 ContainerClass 对象。我正在使用 dir() 或 locals() 查看内存中的对象。我想看到的是,在聚合的情况下,如果删除了容器对象,对象如何能够比容器对象更持久。但是,如果在每种情况下只创建一个对象,那么我如何才能看到聚合与组合的作用呢?

作品:

class ContainerClass:
    def __init__(self):
        self.content = ContentClass()

class ContentClass:
    def __init__(self):
        pass

container = ContainerClass()

聚合:

class ContainerClass:
    def __init__(self, content):
        self.content = content

class ContentClass:
    def __init__(self):
        pass

container = ContainerClass(ContentClass())

我的另一个相关问题是,如果在实例化时未将对象分配给变量,那么对于 dir() 或 locals() 而言,它是否不算作对象?为什么这些函数只显示内存中已分配给变量的对象?

标签: pythonobjectassociationsaggregationcomposition

解决方案


推荐阅读