如何根据方法输入动态键入属性 (Python)
How to dynamically type properties based on method input (Python)
有没有办法根据某种参数推断模型属性的类型?
我正在尝试键入 return 类型的方法,该方法 return 是一个对象列表,例如:
{
"object": "type_depends_on_input_of_method",
"certainty": 0.8
}
我正在努力使该方法接受一个模型和 return 一个特定的 return 类型,以便推断出“对象”的类型,如下所示:
CT = TypeVar("CT")
class SearchReturnType(TypedDict, CT):
object: CT
certainty: float
class SearchInterface:
T = TypeVar("T")
@abc.abstractmethod
def search(self,
text: str,
model: Type[T]) -> List[SearchReturnType(Type[T])]:
有没有办法实现这个?
我理想的情况是当我执行以下操作时,vscode 识别类型并且自动完成工作正常:
search_interface = SearchInterfac()
search_interface_response = search_interface.search("somethin", Document)
first_document = search_interface_response[0].object --> Automatically recognized as a Document
继承自 Generic[CT]
而不是 CT
。
class SearchReturnType(TypedDict, Generic[CT]):
object: CT
certainty: float
SearchReturnType
不是 CT
的一种,而是 使用 CT
的一种通用 class。
有没有办法根据某种参数推断模型属性的类型?
我正在尝试键入 return 类型的方法,该方法 return 是一个对象列表,例如:
{
"object": "type_depends_on_input_of_method",
"certainty": 0.8
}
我正在努力使该方法接受一个模型和 return 一个特定的 return 类型,以便推断出“对象”的类型,如下所示:
CT = TypeVar("CT")
class SearchReturnType(TypedDict, CT):
object: CT
certainty: float
class SearchInterface:
T = TypeVar("T")
@abc.abstractmethod
def search(self,
text: str,
model: Type[T]) -> List[SearchReturnType(Type[T])]:
有没有办法实现这个?
我理想的情况是当我执行以下操作时,vscode 识别类型并且自动完成工作正常:
search_interface = SearchInterfac()
search_interface_response = search_interface.search("somethin", Document)
first_document = search_interface_response[0].object --> Automatically recognized as a Document
继承自 Generic[CT]
而不是 CT
。
class SearchReturnType(TypedDict, Generic[CT]):
object: CT
certainty: float
SearchReturnType
不是 CT
的一种,而是 使用 CT
的一种通用 class。