Python数据库类添加表后字典未保存问题求助
问题原因解析
问题核心在于你每次调用DataBase()时,都会创建一个全新的Database类实例,不同实例的self.data属性完全独立,互相没有关联:
- 执行
DataBase().addTable(tableName)时,你创建了一个临时的Database实例,调用addTable确实给这个实例的self.data添加了表,但这个实例没有被保存到任何变量中,执行完毕后就会被Python的垃圾回收机制销毁。 - 紧接着执行
DataBase().data时,你又创建了一个全新的Database实例,这个实例的self.data是在__init__方法中初始化的空字典,自然输出{}。
修正写法
要解决这个问题,你需要创建一个实例并保存它的引用,之后所有操作都基于同一个实例:
tableName = "table" # 创建实例并保存到变量db中 db = DataBase() # 对同一个实例调用addTable方法 db.addTable(tableName) # 访问同一个实例的data属性 print(db.data) # 输出: {'table': {}}
简单来说,你之前的操作相当于每次都新建一个空数据库,给第一个空数据库加了表,却去查看第二个新空数据库的内容,当然看不到添加的表。
内容的提问来源于stack exchange,提问作者CuriousCoder
相关产品推荐
相关产品推荐

