我有以下课程:
class DBManagerInterface:
@abstractmethod
def __init__(self, table_name): raise NotImplementedError
@abstractmethod
def create_table(self): raise NotImplementedError
@abstractmethod
def drop_table(self): raise NotImplementedError
class DataBaseManager(DBManagerInterface):
def __init__(self, table_name):
self.table_name = table_name
def drop_table(self):
None
def create_table(self):
None
class Example:
def __init__(self, db_manager):
self.db_manager = db_manager
def test(self):
self.db_manager.create_table() # can't see the db_manager methods
在Example
类中,我得到了DataBaseManager
指针。
我将无法看到所有的DataBaseManager
方法(无需在DataBaseManager.py
文件中手动搜索它们)
我正在使用python 3.5.2
和pycharm
编辑器
有可能吗?
PyCharm不知道db_manager
可能是什么,因此它无法为您提供编辑提示。
如果您的环境支持,请注释该参数,PyCharm可以从那里进行类型推断:
def __init__(self, db_manager: DBManagerInterface):
self.db_manager = db_manager
或者如果不支持,则可以在文档字符串中添加注释:
def __init__(self, db_manager):
"""
:type db_manager: DBManagerInterface
"""
self.db_manager = db_manager