python - 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() 而言,它是否不算作对象?为什么这些函数只显示内存中已分配给变量的对象?
解决方案
推荐阅读
- c++ - 在循环中使用初始化列表是否有效?如果没有,它是如何失败的,为什么?
- python - Python嵌套字典更新任何嵌套键匹配的值
- r - 使用 R 中的样本按列和行对矩阵进行采样
- java - 如何验证休息路径(弹簧靴)
- sparse-matrix - Sparse matrix multiplication in Eigen giving wrong result?
- c# - 层次结构中的 Unity 通用列表
- csv - bash 用该列的子字符串替换 csv 中的列
- ionic-framework - 通过 ionic 在 NFC 标签上写入 WiFi ssid 和密码
- c++ - 如何接受字符串“结束”以使用 C++ 完成向量中的程序?
- azure-devops - 如何删除它声称由发布保留的 Azure DevOps 构建定义?