Skip to main content
 首页 » 编程设计

python 不能使用超(父)类中定义的属性

2025年05月04日1452php

这是我的代码

class ElasticsearchController(object): 
     def __init__(self): 
         self.es = Elasticsearch(['blabla'], port=9200) 
 
class MasterDataIndexController(ElasticsearchController): 
     def __init__(self): 
         self.indexName = "bbbbb" 
     def search(self, query): 
         return super.es.search(index=self.indexName, docuemntType = self.documentType, query = query) 

我遇到了这个错误:

AttributeError: type object 'super' has no attribute 'es' 

虽然 super 确实有。

有什么想法吗?

请您参考如下方法:

您没有初始化您的父类(super class)。

class ElasticsearchController(object): 
     def __init__(self): 
         self.es = Elasticsearch(['a.b.c.d'], port=1234) 
 
class MasterDataIndexController(ElasticsearchController): 
     def __init__(self): 
         super(MasterDataIndexController, self).__init__() 
         #^^^^^^^^^^^ 
         self.indexName = "bbbbb" 
 
     def search(self, query): 
         return self.es.search(index=self.indexName, docuemntType = self.documentType, query = query) 
         #      ^^^^^ self should be fine.