有以下功能:
import pdfplumber
from pdfplumber.page import Page
def searchFromFile(path:str,keyword:str) -> list[Page]:
with pdfplumber.open(path) as pdf:
result = [Page]
for page in pdf.pages:
pageText = page.extract_text()
if pageText != None and keyword in pageText:
result.append(page)
return result
为了更准确,我使用Java中的泛型类型定义了返回的列表
,即列表[Page]
,但它不起作用,出现错误:
类型对象不可下标
问:是否有可能定义返回的列表
与泛型类型?
内置的list
直到Python 3.9才成为泛型类型。在早期版本中,您将不得不使用List
(来自typing
模块)。
from typing import List
def searchFromFile(path:str, keyword:str) -> List[Page]:
我想使返回数据类型的的函数与传入的参数的数据类型相同。例如,我会这样调用函数: 因为我将一个传递给,所以它返回了一个
(沙盒) 获取此错误: 类型“number”不可分配给类型“T”“number”可分配给“T”类型的约束,但“T”可以用约束{}的不同子类型实例化。(2322)输入。ts(1,26):预期类型来自此签名的返回类型。 我希望typescript能够自动推断T为数字,然后直接使用它。为什么它在抱怨?写这样的东西的正确方法是什么?谢谢
我想通过TypeScript泛型定义函数返回类型。所以R可以是我将定义的任何东西。 <代码>。。。许诺 错误:(29,9)TS2322:类型“字符串”不可分配给类型“R”。“字符串”可分配给类型“R”的约束,但“R”可以用约束“{}”的不同子类型实例化。
我试图创建一个Java方法,它接受一个对象类型和它应该转换成的数据类型。 例如,如果我应该能够返回一个值1作为Int或双根据需要。我使用类传递数据类型作为参数。 问题:如何使方法泛型以接受基于输入参数的返回类型? 下面的代码只是一个示例,它可能在语法上不正确,用于解释我的问题。
我正在尝试创建一个通用函数,它接受一个,并返回一个对象,该对象包含公共基类型的属性以及特定类型的默认值。出于某种原因,如果没有编译器的抱怨,我无法让它工作。我不确定问题出在哪里,但是 我怀疑这可能是将类型定义为条件类型的方式。我尝试过以各种方式重新定义我的类型,但没有成功,所以我怀疑我要么错过了一些明显的东西,要么没有类型断言是不可能的。 以下是我的类型: 以下是我的通用函数: 产生以下错误: 类
我试图重写在子类中返回type as list的方法,如下例所示,由于泛型问题,我无法在子类中执行此操作。我无法更改我的超类代码,因此如何解决该问题?任何人都可以指引我。。。非常感谢。 无法更新的超类: 子类: