我是python docstrings的新手,所以这个问题可能很简单,但是,我没有找到一个明确的答案,可能是因为我问的问题不对。我发现this question about docstring inheritance非常有用,但是我需要做一些不同的事情:我想修改父函数的声明返回类型,我不需要在子函数中重写。在
这是一个简化的场景:我有一个不同类别的工人池。所有的worker共享一个共同的祖先,我们把它命名为BaseWorker
,所有的池也共享一个共同的祖先,BasePool
。在
这是一个允许我使用IDE的类型暗示的示例(非常简化),但是它涉及到对return_stored_worker()的不必要重写:
class BaseWorker():
pass
class TypeAWorker(BaseWorker):
pass
class BasePool(object):
def __init__(self, n):
self._pool = {}
for i in range(n):
self._pool[i] = BasePool()
def return_stored_worker(self, id):
""" Blabla
Returns:
BaseWorker
"""
# Verifications and other stuff
return self._pool[id]
class TypeAPool(object):
def __init__(self, n):
self._pool = {}
for i in range(n):
self._pool[i] = TypeAWorker()
def return_stored_worker(self, id):
""" Blabla
Returns:
TypeAWorker
"""
return super().return_stored_worker(id)
正如您所看到的,这确实起到了作用,但是从编程的角度来看,这会给完全没有意义的调用引入几纳秒的时间。在
正确编码后,TypeAPool
如下所示:
我的主要目的是利用IDE的自动完成功能,而不是文档生成。也许有办法告诉文档self.\u pool实际上是一个int->;TypeAWorker映射,而不仅仅是dict,后者才是真正的python类?在
目前没有回答
相关问题 更多 >
编程相关推荐