我有一个接口定义为:
class IDefaultedRepo(IRepository):
"""Represents defaulted table in DB"""
def get_values_by_legalbdr(self, legalbdr: str):
raise NotImplementedError
但是,这还不够明确,因为我不知道返回了哪些字段。 我想要这样的东西:
class IDefaultedRepo(IRepository):
"""Represents defaulted table in DB"""
def get_values_by_legalbdr(self, legalbdr: str)->IDefaultedRepo.Result:
class Result(object):
def __init__(self, terminal, value, container):
self.terminal = terminal
self.value = value
self.container = container
raise NotImplementedError
但这会抛出一个NameError,因为结果类尚未定义。
有没有办法指定函数的返回类型(这样内部成员就可以通过点.
操作符访问),而不显式地为每个函数创建结果类?你知道吗
编辑我没有在他们自己的模块中定义,因为我认为他们中会有太多人的名字笨拙而冗长。定义一个内部类会更好,因为它不会强制每次都创建一个新的类名,而且因为返回类型特定于它生成的函数(?)sens将定义的范围仅限于此函数。但是是的,看起来我必须在一个单独的模块中定义它们
问题不是
Result
没有定义,而是IDefaultedRepo
没有定义,解决方法是使用字符串。见this密切相关的问题。但是,在您的例子中,永远不会定义IDefaultedRepo.Result
,因为您的“内部”类根本不是内部类,而是函数的本地类。如果您真的想要一个内部类,那么您需要在类主体内部定义类,而不是在函数主体内部。你知道吗像这样:
但这不是我的第一个爱好。。。你知道吗
但以下是
mypy
:相关问题 更多 >
编程相关推荐